Skip to content

Commit 6d59933

Browse files
committed
Auto merge of #60168 - varkor:tidy-leading-newline, r=alexcrichton
Add a tidy check for leading newlines This is fairly uncommon, but it can slip through when refactoring (as evidenced by the files with leading newlines here).
2 parents c21fbfe + 0964955 commit 6d59933

File tree

12 files changed

+14
-16
lines changed

12 files changed

+14
-16
lines changed

src/rustc/rustc.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
fn main() {
32
// Pull in jemalloc when enabled.
43
//

src/test/incremental/change_name_of_static_in_fn.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
// revisions:rpass1 rpass2 rpass3
32

43
// See issue #57692.
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
pub fn foo() {
32
println!("bar");
43
}

src/test/run-make-fulldeps/lto-dylib-dep/main.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
extern crate a_dylib;
32

43
fn main() {

src/test/run-pass/coherence/auxiliary/re_rebalance_coherence_lib.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
2-
pub trait Backend{}
1+
pub trait Backend {}
32
pub trait SupportsDefaultKeyword {}
43

54
impl SupportsDefaultKeyword for Postgres {}

src/test/ui/coherence/auxiliary/re_rebalance_coherence_lib.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
2-
pub trait Backend{}
1+
pub trait Backend {}
32
pub trait SupportsDefaultKeyword {}
43

54
impl SupportsDefaultKeyword for Postgres {}

src/test/ui/e0119/conflict-with-std.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
use std::marker::PhantomData;
32
use std::convert::{TryFrom, AsRef};
43

src/test/ui/e0119/conflict-with-std.stderr

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error[E0119]: conflicting implementations of trait `std::convert::AsRef<Q>` for type `std::boxed::Box<Q>`:
2-
--> $DIR/conflict-with-std.rs:6:1
2+
--> $DIR/conflict-with-std.rs:5:1
33
|
44
LL | impl AsRef<Q> for Box<Q> {
55
| ^^^^^^^^^^^^^^^^^^^^^^^^
@@ -9,7 +9,7 @@ LL | impl AsRef<Q> for Box<Q> {
99
where T: ?Sized;
1010

1111
error[E0119]: conflicting implementations of trait `std::convert::From<S>` for type `S`:
12-
--> $DIR/conflict-with-std.rs:13:1
12+
--> $DIR/conflict-with-std.rs:12:1
1313
|
1414
LL | impl From<S> for S {
1515
| ^^^^^^^^^^^^^^^^^^
@@ -18,7 +18,7 @@ LL | impl From<S> for S {
1818
- impl<T> std::convert::From<T> for T;
1919

2020
error[E0119]: conflicting implementations of trait `std::convert::TryFrom<X>` for type `X`:
21-
--> $DIR/conflict-with-std.rs:20:1
21+
--> $DIR/conflict-with-std.rs:19:1
2222
|
2323
LL | impl TryFrom<X> for X {
2424
| ^^^^^^^^^^^^^^^^^^^^^

src/test/ui/feature-gates/auxiliary/re_rebalance_coherence_lib.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
2-
pub trait Backend{}
1+
pub trait Backend {}
32
pub trait SupportsDefaultKeyword {}
43

54
impl SupportsDefaultKeyword for Postgres {}

src/test/ui/mod-subitem-as-enum-variant.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
mod Mod {
32
pub struct FakeVariant<T>(pub T);
43
}

src/test/ui/mod-subitem-as-enum-variant.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error[E0109]: type arguments are not allowed for this type
2-
--> $DIR/mod-subitem-as-enum-variant.rs:8:11
2+
--> $DIR/mod-subitem-as-enum-variant.rs:7:11
33
|
44
LL | Mod::<i32>::FakeVariant(0);
55
| ^^^ type argument not allowed

src/tools/tidy/src/style.rs

+7
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ pub fn check(path: &Path, bad: &mut bool) {
112112
let skip_length = contents.contains("ignore-tidy-linelength");
113113
let skip_end_whitespace = contents.contains("ignore-tidy-end-whitespace");
114114
let skip_copyright = contents.contains("ignore-tidy-copyright");
115+
let mut leading_new_lines = false;
115116
let mut trailing_new_lines = 0;
116117
for (i, line) in contents.split('\n').enumerate() {
117118
let mut err = |msg: &str| {
@@ -152,11 +153,17 @@ pub fn check(path: &Path, bad: &mut bool) {
152153
err(LLVM_UNREACHABLE_INFO);
153154
}
154155
if line.is_empty() {
156+
if i == 0 {
157+
leading_new_lines = true;
158+
}
155159
trailing_new_lines += 1;
156160
} else {
157161
trailing_new_lines = 0;
158162
}
159163
}
164+
if leading_new_lines {
165+
tidy_error!(bad, "{}: leading newline", file.display());
166+
}
160167
match trailing_new_lines {
161168
0 => tidy_error!(bad, "{}: missing trailing newline", file.display()),
162169
1 | 2 => {}

0 commit comments

Comments
 (0)