Aller au contenu

Préférences et cookies

Afin d’améliorer votre expérience sur notre site et de réaliser des statistiques de visites, nous utilisons des cookies. Rien n’est déposé sans votre accord, et le refus n’enlève l’accès à aucun contenu. Ce choix peut être modifié à tout moment.

Gérer les traceursVos données

Personnaliser

ArticleApplications & Développement

Rust 1.89 ajoute un argument pour les génériques const

Depuis le début août, le langage Rust prend en charge « _ » comme argument de paramètres génériques const en déduisant la valeur à partir du contexte environnant.

La rédaction

L’équipe en charge du développement de Rust a présenté la version stable 1.89.0 du langage. Parmi les avancées, Rust supporte « _ » comme argument des paramètres génériques const, en déduisant la valeur à partir du contexte environnant. À noter que les développeurs qui ont installé une version précédente de Rust via rustup peuvent obtenir Rust 1.89 en exécutant la commande rustup update stable.

Les responsables de Rust a fourni l’exemple suivant dans son annonce de la sortie :

pub fn all_false() -> [bool; LEN] {

[false; _]

}

« Tout comme les règles régissant l'utilisation de « _ » en tant que type, « _ » n'est pas autorisé en tant qu'argument pour les génériques const dans une signature », a écrit l'équipe :

// This is not allowedpub const fn all_false()-> [bool; _] { [false; LEN]}// Neither is this

Dans Rust 1.89, les doctests seront désormais testés lors de l'exécution de cargo test --doc --target other_target. Cela peut entraîner certaines ruptures en raison des doctests « potentiellement défaillants » qui sont désormais testés. Les tests défaillants peuvent être désactivés en annotant le doctest avec ignore-. L'équipe a fourni cet exemple :

/// ```ignore-x86_64

/// panic!("something")

/// ```

pub fn my_function() { }

Rust 1.89 fait suite à la version 1.88 de Rust, sortie le 26 juin, qui prenait en charge les fonctions « Naked ».

D'autres fonctionnalités

Parmi les autres fonctionnalités de Rust 1.89, on peut citer

- i128 et u128 ne déclenchent plus le lint improper_ctypes_definitions, ce qui signifie que ces types peuvent être utilisés dans les fonctions extern « C » sans avertissement

  • Les fonctions extern « C » sur la cible wasm32-unknown-unknown ont désormais une ABI conforme aux normes

  • Pour les plateformes, x86_64-apple-darwin passe du niveau Tier 1 avec outils hôtes au niveau Tier 2 avec outils hôtes

  • Un lint mismatched_lifetime_syntaxes a été ajouté pour savoir quand la même durée de vie est référencée par différentes catégories de syntaxe entre les arguments de fonction et les valeurs de retour.

Newsletter

La Quotidienne LMI

Recevez chaque matin l’actualité IT de la rédaction.

Rust 1.89 ajoute un argument pour les génériques const