Skip to content

Commit

Permalink
Rollup merge of rust-lang#63087 - crlf0710:tidy_2018, r=Mark-Simulacrum
Browse files Browse the repository at this point in the history
Add very simple edition check to tidy.

Fixes rust-lang#58099.
  • Loading branch information
Centril authored Jul 29, 2019
2 parents 16a733b + 870efe3 commit 6edff11
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 10 deletions.
2 changes: 1 addition & 1 deletion src/test/run-make/thumb-none-qemu/example/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
16 changes: 7 additions & 9 deletions src/test/run-make/thumb-none-qemu/example/src/main.rs
Original file line number Diff line number Diff line change
@@ -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);

Expand All @@ -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);
Expand Down
1 change: 1 addition & 0 deletions src/tools/rustc-std-workspace-alloc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
45 changes: 45 additions & 0 deletions src/tools/tidy/src/edition.rs
Original file line number Diff line number Diff line change
@@ -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()
);
}
},
);
}
1 change: 1 addition & 0 deletions src/tools/tidy/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
1 change: 1 addition & 0 deletions src/tools/tidy/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 6edff11

Please sign in to comment.