Add "better" edition handling on lint-docs tool · rust-lang/rust@41d4a95

File tree

2 files changed

lines changed

  • compiler/rustc_lint_defs/src

2 files changed

lines changed

Original file line numberDiff line numberDiff line change

@@ -3803,7 +3803,7 @@ declare_lint! {

38033803

///

38043804

/// ### Example

38053805

///

3806-

/// ```rust,compile_fail

3806+

/// ```rust,edition2018,compile_fail

38073807

/// #![deny(rust_2021_incompatible_or_patterns)]

38083808

///

38093809

/// macro_rules! match_any {

@@ -3843,7 +3843,7 @@ declare_lint! {

38433843

///

38443844

/// ### Example

38453845

///

3846-

/// ```rust,compile_fail

3846+

/// ```rust,edition2018,compile_fail

38473847

/// #![deny(rust_2021_prelude_collisions)]

38483848

///

38493849

/// trait Foo {

Original file line numberDiff line numberDiff line change

@@ -441,10 +441,19 @@ impl<'a> LintExtractor<'a> {

441441

fs::write(&tempfile, source)

442442

.map_err(|e| format!("failed to write {}: {}", tempfile.display(), e))?;

443443

let mut cmd = Command::new(self.rustc_path);

444-

if options.contains(&"edition2015") {

444+

if options.contains(&"edition2024") {

445+

cmd.arg("--edition=2024");

446+

} else if options.contains(&"edition2021") {

447+

cmd.arg("--edition=2021");

448+

} else if options.contains(&"edition2018") {

449+

cmd.arg("--edition=2018");

450+

} else if options.contains(&"edition2015") {

445451

cmd.arg("--edition=2015");

452+

} else if options.contains(&"edition") {

453+

panic!("lint-docs: unknown edition");

446454

} else {

447-

cmd.arg("--edition=2018");

455+

// defaults to latest edition

456+

cmd.arg("--edition=2021");

448457

}

449458

cmd.arg("--error-format=json");

450459

cmd.arg("--target").arg(self.rustc_target);