Plusieurs évolutions sont à noter dans la version 1.92 de Rust. Le langage de programmation met notamment l’accent sur la fin des avertissements par défaut pour le type never lors de la compilation. L’équipe en charge de Rust a par ailleurs continué à travailler à la stabilisation du type never qui représente les calculs qui n’aboutissent jamais à une valeur.Avec la version 1.92, deux futurs lints de compatibilité never_type_fallback_flowing_into_unsafe et dependency_on_unit_never_type_fallback ont été définis par défaut sur « deny », de sorte qu'ils provoqueront une erreur de compilation lorsqu'ils seront détectés. Même si ces lints entraînent des erreurs de compilation, en tant que lint, ils peuvent toujours être autorisés via #[allow].
L'équipe de publication a souligné que ces lints détectent le code susceptible d'être cassé par la stabilisation du type never, et elle a conseillé de le corriger s'il est signalé. Les lints ne se déclenchent que lors de la compilation directe des crates concernées, et non lorsqu'elles sont compilées en tant que dépendances. Dans la dernière itération de Rust, le lint unused_must_use n'émet plus d'avertissement sur Result<(), UninhabitedType> ou ControlFlow<UninhabitedType, ()>. Par exemple, il n'émettra pas d'avertissement sur Result<(), Infallible>, ce qui évite d’avoir à vérifier une erreur qui ne se produira jamais.
Les tables de déroulement émises par défaut
Par ailleurs, dans Rust 1.92, l'équipe de développement a indiqué que les tables de déroulement étaient désormais émises par défaut, même lorsque le drapeau -Cpanic=abort est spécifié, ce qui permet aux traces de retour en arrière de fonctionner correctement. Les développeurs peuvent utiliser -Cforce-unwind-tables=no pour désactiver explicitement les tables de déroulement si nécessaire. À noter également que les dernières versions ont apporté de nombreux changements à la façon dont les attributs intégrés sont traités dans le compilateur. Ces mises à jour devraient améliorer les messages d'erreur et les avertissements de Rust pour les attributs intégrés, et rendront notamment ces diagnostics plus cohérents parmi les plus de 100 attributs intégrés de Rust. La déclinaison 1.92 propose aussi des API stabilisées telles que Location::file_as_c_str ,Rc::new_zeroed et Arc::new_zeroed_slice.
Cette dernière version fait suite à la sortie, le 30 octobre, de Rust 1.91, qui a promu Windows sur la plateforme Arm64 au rang de cible prise en charge de niveau Tier 1. Une version mineure ultérieure, Rust 1.91.1, a été dévoilée le 10 novembre, avec deux corrections de régression pour Rust 1.91. Ces corrections ont permis de résoudre des erreurs de liaison et d'exécution sur WebAssembly, ainsi que le verrouillage du répertoire cible Cargo. La dernière mise à jour a été dévoilée par l'équipe de développement de Rust le 11 décembre. Les développeurs peuvent passer à la version 1.92 en exécutant la commande $ rustup update stable.