Skip to content

Commit f3ca88c

Browse files
committed
Auto merge of #47064 - kennytm:force-trailing-newlines, r=estebank
Add a tidy check for missing or too many trailing newlines. I've noticed recently there are lots of review comments requesting to fix trailing newlines. If this is going to be an official style here, it's better to let the CI do this repetitive check.
2 parents 037bc65 + 4577a70 commit f3ca88c

36 files changed

+34
-48
lines changed

src/liballoc/tests/cow_str.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,4 +148,4 @@ fn check_cow_clone_from() {
148148
let c2: Cow<str> = Cow::Owned(s);
149149
c1.clone_from(&c2);
150150
assert!(c1.into_owned().capacity() >= 25);
151-
}
151+
}

src/libcore/tests/ops.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,4 @@ fn test_range_inclusive() {
6767
r = RangeInclusive { start: 1, end: -1 };
6868
assert_eq!(r.size_hint(), (0, Some(0)));
6969
assert_eq!(r.next(), None);
70-
}
70+
}

src/libserialize/collection_impls.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,4 +241,4 @@ impl<T: Decodable> Decodable for Arc<[T]> {
241241
Ok(vec.into())
242242
})
243243
}
244-
}
244+
}

src/test/codegen/prefetch.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,5 +71,3 @@ pub fn check_prefetch_write_instruction(data: &[i8]) {
7171
prefetch_write_instruction(data.as_ptr(), 3);
7272
}
7373
}
74-
75-

src/test/compile-fail/E0004.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,4 @@ fn main() {
1919
match x { //~ ERROR E0004
2020
Terminator::TalkToMyHand => {}
2121
}
22-
}
22+
}

src/test/compile-fail/duplicate_entry_error.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ fn panic_fmt() -> ! {
2020
loop {}
2121
}
2222

23-
fn main() {}
23+
fn main() {}

src/test/compile-fail/float-int-invalid-const-cast.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,4 @@ fn main() {
5858
{ const X: u32 = 4294967296. as u32; force(X); } //~ ERROR constant evaluation error
5959
{ const X: u128 = 1e40 as u128; force(X); } //~ ERROR constant evaluation error
6060
{ const X: i128 = 1e40 as i128; force(X); } //~ ERROR constant evaluation error
61-
}
61+
}

src/test/compile-fail/issue-28848.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ pub fn foo<'a, 'b>(u: &'b ()) -> &'a () {
2020
Foo::<'a, 'b>::xmute(u) //~ ERROR lifetime bound not satisfied
2121
}
2222

23-
fn main() {}
23+
fn main() {}

src/test/compile-fail/never-assign-wrong-type.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,3 @@
1616
fn main() {
1717
let x: ! = "hello"; //~ ERROR mismatched types
1818
}
19-
20-

src/test/compile-fail/range_inclusive_gate.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,3 @@ pub fn main() {
1919
//~| ERROR core_intrinsics
2020
//~| ERROR core_intrinsics
2121
}
22-
23-

src/test/compile-fail/useless_comment.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@ fn foo() {
2727

2828
fn main() {
2929
foo();
30-
}
30+
}

src/test/incremental/hashes/enum_defs.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -651,5 +651,3 @@ mod change_trait_bound_indirectly_where {
651651
Variant1(T)
652652
}
653653
}
654-
655-

src/test/incremental/hashes/inline_asm.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,3 @@ pub fn change_options(_a: i32) -> i32 {
236236
}
237237
_out
238238
}
239-
240-
241-

src/test/mir-opt/return_an_array.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ fn foo() -> [u8; 1024] {
1515
return x;
1616
}
1717

18-
fn main() { }
18+
fn main() { }

src/test/parse-fail/issue-37113.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ macro_rules! test_macro {
1818

1919
fn main() {
2020
test_macro!(String,);
21-
}
21+
}

src/test/parse-fail/range_inclusive_gate.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,5 +72,3 @@ pub fn main() {
7272
o!(); // not allowed in macros that output cfgs
7373
p!(); // not allowed in cfg'ed macros that output cfgs
7474
}
75-
76-

src/test/run-fail/return-never-coerce.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,3 @@ fn main() {
2424
let x: i32 = call_another_fn(wub);
2525
let y: u32 = wub();
2626
}
27-
28-

src/test/run-make/a-b-a-linker-guard/a.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,3 @@ pub fn foo(x: u32) { }
1616

1717
#[cfg(y)]
1818
pub fn foo(x: i32) { }
19-
20-

src/test/run-make/reproducible-build/reproducible-build.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,5 +124,3 @@ fn main() {
124124

125125
TupleStruct(1, 2, 3, 4).bar();
126126
}
127-
128-

src/test/run-pass/abi-sysv64-register-usage.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,4 @@ pub fn main() {
102102
}
103103

104104
#[cfg(not(target_arch = "x86_64"))]
105-
pub fn main() {}
105+
pub fn main() {}

src/test/run-pass/auxiliary/issue_42007_s.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@
1111
#[repr(u8)]
1212
pub enum E {
1313
B = 1 as u8,
14-
}
14+
}

src/test/run-pass/for-loop-mut-ref-element.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212

1313
fn main() {
1414
for ref mut _a in std::iter::once(true) {}
15-
}
15+
}

src/test/run-pass/generator/borrow-in-tail-expr.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ fn main() {
1616
let a = String::new();
1717
a.len()
1818
};
19-
}
19+
}

src/test/run-pass/generator/match-bindings.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@ fn main() {
2727
yield;
2828
}
2929
};
30-
}
30+
}

src/test/run-pass/generator/yield-subtype.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ fn bar<'a>() {
2020
};
2121
}
2222

23-
fn main() {}
23+
fn main() {}

src/test/run-pass/issue-22066.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ pub trait LineFormatter<'a> {
1818
}
1919
}
2020

21-
fn main() {}
21+
fn main() {}

src/test/run-pass/issue-32292.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ struct Foo;
1515

1616
fn main() {
1717
let _ = Foo;
18-
}
18+
}

src/test/run-pass/issue-33992.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,4 @@ pub static TEST7: bool = true;
3737
#[linkage = "weak_odr"]
3838
pub static TEST8: bool = true;
3939

40-
fn main() {}
40+
fn main() {}

src/test/run-pass/issue-35376.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,4 @@ pub struct Handle;
4848

4949
impl Beta for Handle {
5050
type Event = ();
51-
}
51+
}

src/test/run-pass/optimization-fuel-1.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,3 @@ fn main() {
2222
+(size_of::<S2>() == 4) as usize;
2323
assert_eq!(optimized, 1);
2424
}
25-
26-

src/test/rustdoc/doc-cfg.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,4 @@ pub mod unix_only {
4444
impl ArmOnly for super::Portable {
4545
fn unix_and_arm_only_function() {}
4646
}
47-
}
47+
}

src/test/ui-fulldeps/update-references.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,3 @@ while [[ "$1" != "" ]]; do
4646
cp $BUILD_DIR/$STDERR_NAME $MYDIR/$STDERR_NAME
4747
fi
4848
done
49-
50-

src/test/ui/in-band-lifetimes/single_use_lifetimes-4.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ enum Bar<'x> { //~ ERROR lifetime name `'x` only used once
1717
Variant(&'x u32)
1818
}
1919

20-
fn main() { }
20+
fn main() { }

src/test/ui/in-band-lifetimes/single_use_lifetimes.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ fn deref<'x>(v: &'x u32) -> u32 { //~ ERROR lifetime name `'x` only used once
1313
*v
1414
}
1515

16-
fn main() {}
16+
fn main() {}

src/test/ui/update-references.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,3 @@ while [[ "$1" != "" ]]; do
4646
cp $BUILD_DIR/$STDERR_NAME $MYDIR/$STDERR_NAME
4747
fi
4848
done
49-
50-

src/tools/tidy/src/style.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ pub fn check(path: &Path, bad: &mut bool) {
130130
let skip_tab = contents.contains("ignore-tidy-tab");
131131
let skip_length = contents.contains("ignore-tidy-linelength");
132132
let skip_end_whitespace = contents.contains("ignore-tidy-end-whitespace");
133+
let mut trailing_new_lines = 0;
133134
for (i, line) in contents.split("\n").enumerate() {
134135
let mut err = |msg: &str| {
135136
tidy_error!(bad, "{}:{}: {}", file.display(), i + 1, msg);
@@ -161,10 +162,20 @@ pub fn check(path: &Path, bad: &mut bool) {
161162
if filename.ends_with(".cpp") && line.contains("llvm_unreachable") {
162163
err(LLVM_UNREACHABLE_INFO);
163164
}
165+
if line.is_empty() {
166+
trailing_new_lines += 1;
167+
} else {
168+
trailing_new_lines = 0;
169+
}
164170
}
165171
if !licenseck(file, &contents) {
166172
tidy_error!(bad, "{}: incorrect license", file.display());
167173
}
174+
match trailing_new_lines {
175+
0 => tidy_error!(bad, "{}: missing trailing newline", file.display()),
176+
1 | 2 => {}
177+
n => tidy_error!(bad, "{}: too many trailing newlines ({})", file.display(), n),
178+
};
168179
})
169180
}
170181

0 commit comments

Comments
 (0)