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

+1-1
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

+1-1
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

+1-1
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

-2
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

+1-1
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

+1-1
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

+1-1
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

+1-1
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

-2
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

-2
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

+1-1
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

-2
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

-3
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

+1-1
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

+1-1
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

-2
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

-2
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

-2
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

-2
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

+1-1
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

+1-1
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

+1-1
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

+1-1
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

+1-1
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

+1-1
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

+1-1
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

+1-1
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

+1-1
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

+1-1
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

-2
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

+1-1
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

-2
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

+1-1
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

+1-1
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

-2
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

+11
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)