refactor: include edition & style edition in CliOptions

This commit is contained in:
Caleb Cartwright 2024-08-01 22:14:23 -05:00 committed by Caleb Cartwright
parent 53d5ccd5e9
commit c0c3dc7a25
4 changed files with 27 additions and 3 deletions

View File

@ -734,6 +734,18 @@ fn apply_to(self, config: &mut Config) {
fn config_path(&self) -> Option<&Path> { fn config_path(&self) -> Option<&Path> {
self.config_path.as_deref() self.config_path.as_deref()
} }
fn edition(&self) -> Option<Edition> {
self.inline_config
.get("edition")
.map_or(self.edition, |e| Edition::from_str(e).ok())
}
fn style_edition(&self) -> Option<StyleEdition> {
self.inline_config
.get("style_edition")
.map_or(self.style_edition, |se| StyleEdition::from_str(se).ok())
}
} }
fn edition_from_edition_str(edition_str: &str) -> Result<Edition> { fn edition_from_edition_str(edition_str: &str) -> Result<Edition> {

View File

@ -376,9 +376,13 @@ pub fn load_config<O: CliOptions>(
file_path: Option<&Path>, file_path: Option<&Path>,
options: Option<O>, options: Option<O>,
) -> Result<(Config, Option<PathBuf>), Error> { ) -> Result<(Config, Option<PathBuf>), Error> {
let over_ride = match options { let (over_ride, _edition, _style_edition) = match options {
Some(ref opts) => config_path(opts)?, Some(ref opts) => (
None => None, config_path(opts)?,
opts.edition(),
opts.style_edition(),
),
None => (None, None, None),
}; };
let result = if let Some(over_ride) = over_ride { let result = if let Some(over_ride) = over_ride {

View File

@ -419,6 +419,8 @@ pub trait CliOptions {
/// It is ok if the returned path doesn't exist or is not canonicalized /// It is ok if the returned path doesn't exist or is not canonicalized
/// (i.e. the callers are expected to handle such cases). /// (i.e. the callers are expected to handle such cases).
fn config_path(&self) -> Option<&Path>; fn config_path(&self) -> Option<&Path>;
fn edition(&self) -> Option<Edition>;
fn style_edition(&self) -> Option<StyleEdition>;
} }
/// The edition of the syntax and semantics of code (RFC 2052). /// The edition of the syntax and semantics of code (RFC 2052).

View File

@ -89,6 +89,12 @@ fn apply_to(self, _: &mut rustfmt::Config) {
fn config_path(&self) -> Option<&Path> { fn config_path(&self) -> Option<&Path> {
unreachable!(); unreachable!();
} }
fn edition(&self) -> Option<rustfmt_nightly::Edition> {
unreachable!();
}
fn style_edition(&self) -> Option<rustfmt_nightly::StyleEdition> {
unreachable!();
}
} }
fn uncommitted_files() -> Vec<String> { fn uncommitted_files() -> Vec<String> {