`RustFmt` error: "let chains are only allowed in Rust 2024 or later" but I'm on 2024

Ouverte
#529 3 commentaires 4 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
45/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
rust, vim
Domaine
tooling

Piste de recherche

Start by reading the :RustFmt implementation and how it selects the Rust file’s edition; compare that behavior with cargo fmt on the workspace and crate-level edition configurations described in the report. Reproduce with a crate using let chains and edition 2024, then check whether the command works with an explicit crate edition. Done when :RustFmt formats the file without the Rust 2024 edition error.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Project setup: I have a workspace that specifies the project versions, rust editions, and dependencies in the workspace Cargo.toml, and the crates contained within use:

version.workspace = true
edition.workspace = true
...

etc to refer to the configuration in the workspace Cargo.toml. I'm using edition "2024".

Vim setup: I'm on vim 8.2. rust.vim is already on its newest version. Here are the versions reported by :RustInfo.

rustfmt 1.8.0-stable (1159e78c47 2025-09-14)
rustc 1.90.0 (1159e78c4 2025-09-14)
cargo 1.90.0 (840b83a10 2025-07-30)  
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Apr 02 2025 12:39:01)
Included patches: 1-16, 647, 17-579, 1969, 580-647, 678, 648-1848, 4975, 5016, 5023, 5072, 2068, 1849-1854, 1857, 1855-1857, 1331, 1858, 1858-1859, 1873, 1860-1969, 1992, 1
970-1992, 2010, 1993-2068, 2106, 2069-2106, 2108, 2107-2109, 2109-3995, 4563, 4646, 4774, 4895, 4899, 4901, 4919, 213, 1840, 1846-1847, 2110-2112, 2121
Modified by [email protected]
Compiled by [email protected]  

Issue: Running :RustFmt on a rust file that's using let chains fails with a location list of errors saying:

error: let chains are only allowed in Rust 2024 or later

The issue still reproduces this issue by using edition = "2024" on the crate instead of referring to the workspace edition. But cargo fmt on the command line works just fine. cargo fmt will produce the error above if I change to edition = "2018", for example. So rust.vim seems to not see the version correctly.

Any insights on what the underlying issue is and how to resolve it?

Langage dominant
Vim Script
Étoiles
4.2k
Forks
323
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de rust-lang/rust.vim

Toutes les issues de rust-lang/rust.vim

Issues similaires

Plus d'issues DevTools

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.