Rust、「never」型をついに安定化

Original : Stabilizing Rust's Never Type

Pourquoi c'est important

La stabilisation de `!` renforce la sécurité et l'expressivité du système de types Rust en production.

Le contributeur Rust « waffle » a officiellement stabilisé le type « never » (noté `!`) le 24 août 2026, après plus de deux ans de travail. Ce type signale les fonctions ne retournant jamais de valeur, permettant une optimisation du code générique et une inférence de types plus rigoureuse.

En Rust, le type `!` (« never ») existait depuis longtemps en usage interne du compilateur, mais restait une fonctionnalité instable. Sa stabilisation a pris du temps notamment parce qu'elle impliquait une légère rupture de compatibilité avec les anciennes éditions du langage — les mainteneurs devaient s'assurer que l'impact sur le code existant soit minime.

Concrètement, ce type sert à deux choses. Premièrement, il permet d'optimiser le code générique : un type implémentant `FromStr` de manière infaillible peut déclarer `Err = !`, signalant au compilateur que la branche d'erreur est inaccessible et peut être éliminée. Deuxièmement, il simplifie l'inférence de types pour les expressions comme les boucles infinies, qui doivent avoir un type logique même sans valeur de retour.

Le type `!` possède une propriété clé : il se convertit implicitement vers n'importe quel autre type, ce qui est sûr puisqu'il représente un calcul qui ne produit jamais de valeur. Le compilateur peut ainsi supprimer le code mort de manière systématique. Un cas particulier, dit « never fallback », a nécessité une attention spéciale pour éviter des régressions silencieuses dans le code existant.

Source

lwn.net — Lire l'original →