diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-07-30 05:37:36 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-07-30 05:37:36 +0200 |
| commit | 44130681eba7330789f4e0c941e57118ee976d07 (patch) | |
| tree | 186fdf3414844dc196dd1b95078ee71307612c63 /src | |
| parent | 652f13d838d7b017e2d0ce4bbdb3c4d7a1a866d9 (diff) | |
| parent | 870efe34c8c86a3aef4db628b429425a216b41bd (diff) | |
| download | rust-44130681eba7330789f4e0c941e57118ee976d07.tar.gz rust-44130681eba7330789f4e0c941e57118ee976d07.zip | |
Rollup merge of #63087 - crlf0710:tidy_2018, r=Mark-Simulacrum
Add very simple edition check to tidy. Fixes #58099.
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/run-make/thumb-none-qemu/example/Cargo.toml | 2 | ||||
| -rw-r--r-- | src/test/run-make/thumb-none-qemu/example/src/main.rs | 16 | ||||
| -rw-r--r-- | src/tools/rustc-std-workspace-alloc/Cargo.toml | 1 | ||||
| -rw-r--r-- | src/tools/tidy/src/edition.rs | 45 | ||||
| -rw-r--r-- | src/tools/tidy/src/lib.rs | 1 | ||||
| -rw-r--r-- | src/tools/tidy/src/main.rs | 1 |
6 files changed, 56 insertions, 10 deletions
diff --git a/src/test/run-make/thumb-none-qemu/example/Cargo.toml b/src/test/run-make/thumb-none-qemu/example/Cargo.toml index 499553304c6..73fdee71f0c 100644 --- a/src/test/run-make/thumb-none-qemu/example/Cargo.toml +++ b/src/test/run-make/thumb-none-qemu/example/Cargo.toml @@ -2,7 +2,7 @@ name = "example" version = "0.1.0" authors = ["Hideki Sekine <sekineh@me.com>"] -# edition = "2018" +edition = "2018" [dependencies] cortex-m = "0.5.4" diff --git a/src/test/run-make/thumb-none-qemu/example/src/main.rs b/src/test/run-make/thumb-none-qemu/example/src/main.rs index d88a327ef08..4a08419a07e 100644 --- a/src/test/run-make/thumb-none-qemu/example/src/main.rs +++ b/src/test/run-make/thumb-none-qemu/example/src/main.rs @@ -1,16 +1,14 @@ // #![feature(stdsimd)] #![no_main] #![no_std] - -extern crate cortex_m; - -extern crate cortex_m_rt as rt; -extern crate cortex_m_semihosting as semihosting; -extern crate panic_halt; - use core::fmt::Write; use cortex_m::asm; -use rt::entry; +use cortex_m_rt::entry; +use cortex_m_semihosting as semihosting; + +//FIXME: This imports the provided #[panic_handler]. +#[allow(rust_2018_idioms)] +extern crate panic_halt; entry!(main); @@ -22,7 +20,7 @@ fn main() -> ! { // write something through semihosting interface let mut hstdout = semihosting::hio::hstdout().unwrap(); - write!(hstdout, "x = {}\n", x); + let _ = write!(hstdout, "x = {}\n", x); // exit from qemu semihosting::debug::exit(semihosting::debug::EXIT_SUCCESS); diff --git a/src/tools/rustc-std-workspace-alloc/Cargo.toml b/src/tools/rustc-std-workspace-alloc/Cargo.toml index 05df1fddc7f..ef7dc812af9 100644 --- a/src/tools/rustc-std-workspace-alloc/Cargo.toml +++ b/src/tools/rustc-std-workspace-alloc/Cargo.toml @@ -6,6 +6,7 @@ license = 'MIT OR Apache-2.0' description = """ Hack for the compiler's own build system """ +edition = "2018" [lib] path = "lib.rs" diff --git a/src/tools/tidy/src/edition.rs b/src/tools/tidy/src/edition.rs new file mode 100644 index 00000000000..4a2e49fd1c3 --- /dev/null +++ b/src/tools/tidy/src/edition.rs @@ -0,0 +1,45 @@ +//! Tidy check to ensure that crate `edition` is '2018' +//! + +use std::path::Path; + +fn filter_dirs(path: &Path) -> bool { + // FIXME: just use super::filter_dirs after the submodules are updated. + if super::filter_dirs(path) { + return true; + } + let skip = [ + "src/doc/book/second-edition", + "src/doc/book/2018-edition", + "src/doc/book/ci/stable-check", + "src/doc/reference/stable-check", + ]; + skip.iter().any(|p| path.ends_with(p)) +} + +fn is_edition_2018(mut line: &str) -> bool { + line = line.trim(); + line == "edition = \"2018\"" || line == "edition = \'2018\'" +} + +pub fn check(path: &Path, bad: &mut bool) { + super::walk( + path, + &mut |path| filter_dirs(path) || path.ends_with("src/test"), + &mut |entry, contents| { + let file = entry.path(); + let filename = file.file_name().unwrap(); + if filename != "Cargo.toml" { + return; + } + let has_edition = contents.lines().any(is_edition_2018); + if !has_edition { + tidy_error!( + bad, + "{} doesn't have `edition = \"2018\"` on a separate line", + file.display() + ); + } + }, + ); +} diff --git a/src/tools/tidy/src/lib.rs b/src/tools/tidy/src/lib.rs index eca8001a9d2..e01184e3658 100644 --- a/src/tools/tidy/src/lib.rs +++ b/src/tools/tidy/src/lib.rs @@ -34,6 +34,7 @@ pub mod style; pub mod errors; pub mod features; pub mod cargo; +pub mod edition; pub mod pal; pub mod deps; pub mod extdeps; diff --git a/src/tools/tidy/src/main.rs b/src/tools/tidy/src/main.rs index 3acb50547da..5deac52f08b 100644 --- a/src/tools/tidy/src/main.rs +++ b/src/tools/tidy/src/main.rs @@ -22,6 +22,7 @@ fn main() { style::check(&path, &mut bad); errors::check(&path, &mut bad); cargo::check(&path, &mut bad); + edition::check(&path, &mut bad); let collected = features::check(&path, &mut bad, verbose); pal::check(&path, &mut bad); unstable_book::check(&path, collected, &mut bad); |
