-
Notifications
You must be signed in to change notification settings - Fork 13.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a tidy check for missing or too many trailing newlines. #47064
Conversation
(rust_highfive has picked a reviewer for you, use r? to override) |
src/tools/tidy/src/style.rs
Outdated
} | ||
if !licenseck(file, &contents) { | ||
tidy_error!(bad, "{}: incorrect license", file.display()); | ||
} | ||
if !has_trailing_new_line { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Q: What is almost as bad as no trailing newline?
A: Multiple trailing newlines!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@petrochenkov The change for that is going to be huge 😰 (213 files affected)
tidy error: src/libstd_unicode/tables.rs: too many trailing newlines (2)
tidy error: src/test/ui/did_you_mean/recursion_limit_deref.rs: too many trailing newlines (2)
tidy error: src/test/ui/did_you_mean/recursion_limit_macro.rs: too many trailing newlines (2)
tidy error: src/test/ui/feature-gate-rustc_const_unstable.rs: too many trailing newlines (2)
tidy error: src/test/ui/feature-gate-allocator_internals.rs: too many trailing newlines (2)
tidy error: src/test/ui/feature-gate-wasm_import_memory.rs: too many trailing newlines (2)
tidy error: src/test/ui/feature-gate/issue-43106-gating-of-rustc_deprecated.rs: too many trailing newlines (2)
tidy error: src/test/ui/fmt/format-string-error.rs: too many trailing newlines (2)
tidy error: src/test/ui/feature-gate-compiler-builtins.rs: too many trailing newlines (2)
tidy error: src/test/ui/macro_backtrace/auxiliary/ping.rs: too many trailing newlines (2)
tidy error: src/test/ui/mismatched_types/trait-impl-fn-incompatibility.rs: too many trailing newlines (2)
tidy error: src/test/ui/mismatched_types/main.rs: too many trailing newlines (2)
tidy error: src/test/ui/feature-gate-match_beginning_vert.rs: too many trailing newlines (2)
tidy error: src/test/ui/borrowck/mut-borrow-outside-loop.rs: too many trailing newlines (2)
tidy error: src/test/ui/borrowck/mut-borrow-in-loop.rs: too many trailing newlines (2)
tidy error: src/test/ui/generator/borrowing.rs: too many trailing newlines (2)
tidy error: src/test/ui/trait-alias.rs: too many trailing newlines (2)
tidy error: src/test/ui/feature-gate-dropck-ugeh.rs: too many trailing newlines (2)
tidy error: src/test/ui/feature-gate-i128_type.rs: too many trailing newlines (2)
tidy error: src/test/ui/region-borrow-params-issue-29793-small.rs: too many trailing newlines (2)
tidy error: src/test/ui/span/dropck-object-cycle.rs: too many trailing newlines (2)
tidy error: src/test/ui/span/suggestion-non-ascii.rs: too many trailing newlines (2)
tidy error: src/test/ui/unsized-enum2.rs: too many trailing newlines (2)
tidy error: src/test/ui/issue-40782.rs: too many trailing newlines (2)
tidy error: src/test/ui/feature-gate-never_type.rs: too many trailing newlines (2)
tidy error: src/test/ui/nll/projection-return.rs: too many trailing newlines (2)
tidy error: src/test/ui/lifetime-errors/ex3-both-anon-regions-3.rs: too many trailing newlines (2)
tidy error: src/test/ui/lifetime-errors/ex3-both-anon-regions-self-is-anon.rs: too many trailing newlines (2)
tidy error: src/test/ui/lifetime-errors/ex3-both-anon-regions-return-type-is-anon.rs: too many trailing newlines (2)
tidy error: src/test/ui/update-references.sh: too many trailing newlines (3)
tidy error: src/test/ui/feature-gate-needs-allocator.rs: too many trailing newlines (2)
tidy error: src/test/ui/feature-gate-allow_fail.rs: too many trailing newlines (2)
tidy error: src/test/ui/unsafe-const-fn.rs: too many trailing newlines (2)
tidy error: src/test/codegen-units/item-collection/static-init.rs: too many trailing newlines (2)
tidy error: src/test/codegen-units/item-collection/unreferenced-inline-function.rs: too many trailing newlines (2)
tidy error: src/test/codegen-units/item-collection/auxiliary/cgu_generic_function.rs: too many trailing newlines (2)
tidy error: src/test/codegen-units/partitioning/auxiliary/cgu_generic_function.rs: too many trailing newlines (2)
tidy error: src/test/run-pass-fulldeps/binary-heap-panic-safe.rs: too many trailing newlines (2)
tidy error: src/test/run-pass-fulldeps/proc-macro/expand-with-a-macro.rs: too many trailing newlines (2)
tidy error: src/test/run-pass-fulldeps/proc-macro/auxiliary/expand-with-a-macro.rs: too many trailing newlines (2)
tidy error: src/test/rustdoc/issue-15318-2.rs: too many trailing newlines (2)
tidy error: src/test/rustdoc/issue-38129.rs: too many trailing newlines (2)
tidy error: src/test/rustdoc/issue-20727-2.rs: too many trailing newlines (2)
tidy error: src/test/rustdoc/issue-19190-3.rs: too many trailing newlines (2)
tidy error: src/test/rustdoc/issue-23207.rs: too many trailing newlines (2)
tidy error: src/test/rustdoc/inline_cross/issue-32881.rs: too many trailing newlines (2)
tidy error: src/test/rustdoc/inline_cross/auxiliary/rustdoc-trait-object-impl.rs: too many trailing newlines (2)
tidy error: src/test/rustdoc/auxiliary/issue-23207-2.rs: too many trailing newlines (2)
tidy error: src/test/incremental/hashes/exported_vs_not.rs: too many trailing newlines (2)
tidy error: src/test/incremental/hashes/enum_defs.rs: too many trailing newlines (3)
tidy error: src/test/incremental/hashes/inline_asm.rs: too many trailing newlines (4)
tidy error: src/test/incremental/change_crate_order/auxiliary/a.rs: too many trailing newlines (2)
tidy error: src/test/incremental/change_crate_order/auxiliary/b.rs: too many trailing newlines (2)
tidy error: src/test/incremental/span_hash_stable/main.rs: too many trailing newlines (2)
tidy error: src/test/incremental/krate_reassign_34991/auxiliary/a.rs: too many trailing newlines (2)
tidy error: src/test/incremental/krate-inherent.rs: too many trailing newlines (2)
tidy error: src/test/incremental/issue-39569.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/range_traits-6.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/issue-40350.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/unreachable-arm.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/struct-fields-shorthand.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/match-byte-array-patterns-2.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/issue-30236.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/range_traits-2.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/range_traits-3.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/issue-26905.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/catch-maybe-bad-lifetime.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/type-mismatch-multiple.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/const-eval-overflow-3b.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/range_traits-7.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/unreachable-loop-patterns.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/uninhabited-irrefutable.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/never-assign-wrong-type.rs: too many trailing newlines (3)
tidy error: src/test/compile-fail/macro-follow.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/bad-lint-cap3.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/borrowck/two-phase-reservation-sharing-interference.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/range_inclusive_gate.rs: too many trailing newlines (3)
tidy error: src/test/compile-fail/trait-alias.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/enum-discrim-autosizing.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/impl-trait/where-allowed.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/binop-logic-float.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/deriving-copyclone.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/recursive-types-are-not-uninhabited.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/match-argm-statics-2.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/wf-outlives-ty-in-fn-or-trait.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/return-unit-from-diverging.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/allocator/two-allocators2.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/allocator/two-allocators.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/unreachable-try-pattern.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/deriving-primitive.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/return-from-diverging.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/call-fn-never-arg-wrong-type.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/catch-opt-init.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/panic-runtime/libtest-unwinds.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/range_traits-4.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/issue-30240-b.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/range_traits-5.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/catch-bad-lifetime.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/uninhabited-patterns.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/E0619.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/auxiliary/default_ty_param_cross_crate_crate.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/transmute-imut-to-mut.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/patkind-litrange-no-expr.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail/inhabitedness-infinite-loop.rs: too many trailing newlines (2)
tidy error: src/test/run-fail/cast-never.rs: too many trailing newlines (2)
tidy error: src/test/run-fail/never-associated-type.rs: too many trailing newlines (2)
tidy error: src/test/run-fail/never-type-arg.rs: too many trailing newlines (2)
tidy error: src/test/run-fail/call-fn-never-arg.rs: too many trailing newlines (2)
tidy error: src/test/run-fail/return-never-coerce.rs: too many trailing newlines (3)
tidy error: src/test/run-pass/macro-first-set.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/project-cache-issue-31849.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/mir_constval_adts.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/empty-types-in-patterns.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue-26905.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/never-result.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/inc-range-pat.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue28498-must-work-ex2.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/impl-for-never.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue-39709.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue_26873_multifile/A/mod.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue_26873_multifile/A/B.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue_26873_multifile/A/C.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue_26873_multifile/mod.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue-21400.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue-26873-onefile.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/macro-follow.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue24687-embed-debuginfo/auxiliary/issue24687_lib.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/macro-nested_expr.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/asm-concat-src.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/optimization-fuel-1.rs: too many trailing newlines (3)
tidy error: src/test/run-pass/range_inclusive_gate.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/derive-no-std.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/lint-cap.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/deriving-copyclone.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/thinlto/thin-lto-inlines2.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/allocator/xcrate-use2.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue-33287.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue-24313.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/optimization-fuel-0.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/nll/rc-loop.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/signal-alternate-stack-cleanup.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/const-fn-feature-flags.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/link-cfg-works.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue28498-ugeh-ex1.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/macro-pat-neg-lit.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue-30371.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/issue-23699.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/discriminant_value-wrapper.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/never_coercions.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/auxiliary/issue-17718-aux.rs: too many trailing newlines (2)
tidy error: src/test/run-pass/auxiliary/derive-no-std.rs: too many trailing newlines (2)
tidy error: src/test/ui-fulldeps/update-references.sh: too many trailing newlines (3)
tidy error: src/test/codegen/nounwind.rs: too many trailing newlines (2)
tidy error: src/test/codegen/likely.rs: too many trailing newlines (2)
tidy error: src/test/codegen/prefetch.rs: too many trailing newlines (3)
tidy error: src/test/parse-fail/lex-bad-char-literals-1.rs: too many trailing newlines (2)
tidy error: src/test/parse-fail/range_inclusive_dotdotdot.rs: too many trailing newlines (2)
tidy error: src/test/parse-fail/range_inclusive_gate.rs: too many trailing newlines (3)
tidy error: src/test/parse-fail/lex-bad-char-literals-2.rs: too many trailing newlines (2)
tidy error: src/test/parse-fail/range_inclusive.rs: too many trailing newlines (2)
tidy error: src/test/debuginfo/unreachable-locals.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail-fulldeps/dropck_tarena_unsound_drop.rs: too many trailing newlines (2)
tidy error: src/test/compile-fail-fulldeps/proc-macro/auxiliary/derive-bad.rs: too many trailing newlines (2)
tidy error: src/test/run-make/lto-no-link-whole-rlib/lib2.rs: too many trailing newlines (2)
tidy error: src/test/run-make/issue-28595/b.c: too many trailing newlines (2)
tidy error: src/test/run-make/a-b-a-linker-guard/a.rs: too many trailing newlines (3)
tidy error: src/test/run-make/windows-subsystem/console.rs: too many trailing newlines (2)
tidy error: src/test/run-make/reproducible-build/reproducible-build.rs: too many trailing newlines (3)
tidy error: src/test/run-make/sanitizer-staticlib-link/program.c: too many trailing newlines (2)
tidy error: src/test/run-make/stable-symbol-names/stable-symbol-names2.rs: too many trailing newlines (2)
tidy error: src/test/run-make/issue-18943/foo.rs: too many trailing newlines (2)
tidy error: src/test/pretty/cast-lt.rs: too many trailing newlines (2)
tidy error: src/libstd/sys/unix/l4re.rs: too many trailing newlines (2)
tidy error: src/libstd/os/dragonfly/fs.rs: too many trailing newlines (2)
tidy error: src/libstd/os/macos/fs.rs: too many trailing newlines (2)
tidy error: src/libstd/os/bitrig/fs.rs: too many trailing newlines (2)
tidy error: src/libstd/os/netbsd/fs.rs: too many trailing newlines (2)
tidy error: src/libstd/os/ios/fs.rs: too many trailing newlines (2)
tidy error: src/libstd/os/freebsd/fs.rs: too many trailing newlines (2)
tidy error: src/libstd/os/android/raw.rs: too many trailing newlines (2)
tidy error: src/libstd/os/android/fs.rs: too many trailing newlines (2)
tidy error: src/libstd/os/openbsd/fs.rs: too many trailing newlines (2)
tidy error: src/librustc_typeck/variance/mod.rs: too many trailing newlines (2)
tidy error: src/librustc/middle/free_region.rs: too many trailing newlines (2)
tidy error: src/librustc/util/nodemap.rs: too many trailing newlines (2)
tidy error: src/librustc/ty/maps/values.rs: too many trailing newlines (2)
tidy error: src/librustc/ty/inhabitedness/mod.rs: too many trailing newlines (2)
tidy error: src/librustc/ty/inhabitedness/def_id_forest.rs: too many trailing newlines (2)
tidy error: src/librustc/ty/erase_regions.rs: too many trailing newlines (2)
tidy error: src/librustc/ty/codec.rs: too many trailing newlines (2)
tidy error: src/librustc/infer/region_constraints/taint.rs: too many trailing newlines (2)
tidy error: src/librustc/infer/mod.rs: too many trailing newlines (2)
tidy error: src/librustc/macros.rs: too many trailing newlines (2)
tidy error: src/librustc/dep_graph/raii.rs: too many trailing newlines (2)
tidy error: src/librustc/mir/mono.rs: too many trailing newlines (2)
tidy error: src/librustc/ich/hcx.rs: too many trailing newlines (2)
tidy error: src/librustdoc/build.rs: too many trailing newlines (2)
tidy error: src/librustc_mir/borrow_check/nll/region_infer/dump_mir.rs: too many trailing newlines (2)
tidy error: src/libsyntax/test_snippet.rs: too many trailing newlines (2)
tidy error: src/librustc_trans/time_graph.rs: too many trailing newlines (2)
tidy error: src/librustc_trans/mir/place.rs: too many trailing newlines (2)
tidy error: src/librustc_trans/common.rs: too many trailing newlines (2)
tidy error: src/libcore/tests/num/flt2dec/mod.rs: too many trailing newlines (2)
tidy error: src/libcore/tests/num/flt2dec/estimator.rs: too many trailing newlines (2)
tidy error: src/libcore/tests/num/flt2dec/strategy/dragon.rs: too many trailing newlines (2)
tidy error: src/libcore/tests/num/flt2dec/strategy/grisu.rs: too many trailing newlines (2)
tidy error: src/libcore/tests/num/bignum.rs: too many trailing newlines (2)
tidy error: src/libcore/num/flt2dec/decoder.rs: too many trailing newlines (2)
tidy error: src/libcore/num/flt2dec/mod.rs: too many trailing newlines (2)
tidy error: src/libcore/num/flt2dec/estimator.rs: too many trailing newlines (2)
tidy error: src/libcore/internal_macros.rs: too many trailing newlines (2)
tidy error: src/librustc_data_structures/accumulate_vec.rs: too many trailing newlines (2)
tidy error: src/librustc_driver/derive_registrar.rs: too many trailing newlines (2)
de5e62c
to
4577a70
Compare
@petrochenkov Modified the style check to error on having ≥3 trailing newlines as well. I allowed for 2 trailing newlines since that affected too many files. Besides, having multiple trailing newlines isn't as evil as no trailing newlines (which breaks |
@bors r+ rollup |
📌 Commit 4577a70 has been approved by |
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.
☀️ Test successful - status-appveyor, status-travis |
…, r=kennytm Disallow double trailing newlines in tidy This wasn't done previously in rust-lang#47064 (comment) as it affected too many files, but I think it's best to fix it now so that the number of files with double trailing newlines doesn't keep increasing. r? kennytm
Disallow double trailing newlines in tidy This wasn't done previously in #47064 (comment) as it affected too many files, but I think it's best to fix it now so that the number of files with double trailing newlines doesn't keep increasing. r? kennytm
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.