Skip to content

Commit

Permalink
Auto merge of rust-lang#130599 - jieyouxu:snake_case_binary_cleanup, …
Browse files Browse the repository at this point in the history
…r=petrochenkov

Explain why `non_snake_case` is skipped for binary crates and cleanup tests

- Explain `non_snake_case` lint is skipped for bin crate names because binaries are not intended to be distributed or consumed like library crates (rust-lang#45127).
- Coalesce the bunch of tests into a single one but with revisions, which is easier to compare the differences for `non_snake_case` behavior with respect to crate types.

Follow-up to rust-lang#121749 with some more comments and test cleanup.

cc `@saethlin` who bumped into one of the tests and was confused why it was `only-x86_64-unknown-linux-gnu`.
  • Loading branch information
bors committed Sep 21, 2024
2 parents c0838c8 + aebc28e commit 5050837
Show file tree
Hide file tree
Showing 20 changed files with 66 additions and 100 deletions.
3 changes: 3 additions & 0 deletions compiler/rustc_lint/src/nonstandard_style.rs
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,9 @@ impl<'tcx> LateLintPass<'tcx> for NonSnakeCase {
return;
}

// Issue #45127: don't enforce `snake_case` for binary crates as binaries are not intended
// to be distributed and depended on like libraries. The lint is not suppressed for cdylib
// or staticlib because it's not clear what the desired lint behavior for those are.
if cx.tcx.crate_types().iter().all(|&crate_type| crate_type == CrateType::Executable) {
return;
}
Expand Down
1 change: 1 addition & 0 deletions src/tools/compiletest/src/command-list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
"ignore-horizon",
"ignore-i686-pc-windows-gnu",
"ignore-i686-pc-windows-msvc",
"ignore-i686-unknown-linux-musl",
"ignore-illumos",
"ignore-ios",
"ignore-linux",
Expand Down
7 changes: 0 additions & 7 deletions tests/ui/lint/non-snake-case/lint-non-snake-case-crate-bin.rs

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

7 changes: 0 additions & 7 deletions tests/ui/lint/non-snake-case/lint-non-snake-case-crate-lib.rs

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
error: crate `NonSnakeCase` should have a snake case name
--> $DIR/lint-non-snake-case-crate-lib.rs:3:18
--> $DIR/lint-non-snake-case-crate.rs:22:18
|
LL | #![crate_name = "NonSnakeCase"]
| ^^^^^^^^^^^^ help: convert the identifier to snake case: `non_snake_case`
|
note: the lint level is defined here
--> $DIR/lint-non-snake-case-crate-lib.rs:5:9
--> $DIR/lint-non-snake-case-crate.rs:24:9
|
LL | #![deny(non_snake_case)]
| ^^^^^^^^^^^^^^
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
error: crate `NonSnakeCase` should have a snake case name
--> $DIR/lint-non-snake-case-crate-rlib.rs:3:18
--> $DIR/lint-non-snake-case-crate.rs:22:18
|
LL | #![crate_name = "NonSnakeCase"]
| ^^^^^^^^^^^^ help: convert the identifier to snake case: `non_snake_case`
|
note: the lint level is defined here
--> $DIR/lint-non-snake-case-crate-rlib.rs:5:9
--> $DIR/lint-non-snake-case-crate.rs:24:9
|
LL | #![deny(non_snake_case)]
| ^^^^^^^^^^^^^^
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
error: crate `NonSnakeCase` should have a snake case name
--> $DIR/lint-non-snake-case-crate-dylib.rs:3:18
--> $DIR/lint-non-snake-case-crate.rs:22:18
|
LL | #![crate_name = "NonSnakeCase"]
| ^^^^^^^^^^^^ help: convert the identifier to snake case: `non_snake_case`
|
note: the lint level is defined here
--> $DIR/lint-non-snake-case-crate-dylib.rs:5:9
--> $DIR/lint-non-snake-case-crate.rs:24:9
|
LL | #![deny(non_snake_case)]
| ^^^^^^^^^^^^^^
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
error: crate `NonSnakeCase` should have a snake case name
--> $DIR/lint-non-snake-case-crate-cdylib.rs:3:18
--> $DIR/lint-non-snake-case-crate.rs:22:18
|
LL | #![crate_name = "NonSnakeCase"]
| ^^^^^^^^^^^^ help: convert the identifier to snake case: `non_snake_case`
|
note: the lint level is defined here
--> $DIR/lint-non-snake-case-crate-cdylib.rs:5:9
--> $DIR/lint-non-snake-case-crate.rs:24:9
|
LL | #![deny(non_snake_case)]
| ^^^^^^^^^^^^^^
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
error: crate `NonSnakeCase` should have a snake case name
--> $DIR/lint-non-snake-case-crate.rs:22:18
|
LL | #![crate_name = "NonSnakeCase"]
| ^^^^^^^^^^^^ help: convert the identifier to snake case: `non_snake_case`
|
note: the lint level is defined here
--> $DIR/lint-non-snake-case-crate.rs:24:9
|
LL | #![deny(non_snake_case)]
| ^^^^^^^^^^^^^^

error: aborting due to 1 previous error

26 changes: 26 additions & 0 deletions tests/ui/lint/non-snake-case/lint-non-snake-case-crate.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
//! Don't lint on binary crate with non-snake-case names.
//!
//! See <https://github.com/rust-lang/rust/issues/45127>.

//@ revisions: bin_ cdylib_ dylib_ lib_ proc_macro_ rlib_ staticlib_

// Should not fire on binary crates.
//@[bin_] compile-flags: --crate-type=bin
//@[bin_] check-pass

// But should fire on non-binary crates.
//@[cdylib_] compile-flags: --crate-type=cdylib
//@[cdylib_] ignore-i686-unknown-linux-musl (cdylib is not supported)
//@[dylib_] compile-flags: --crate-type=dylib
//@[dylib_] ignore-wasm (dylib is not supported)
//@[lib_] compile-flags: --crate-type=lib
//@[proc_macro_] compile-flags: --crate-type=proc-macro
//@[proc_macro_] ignore-wasm (dylib is not supported)
//@[rlib_] compile-flags: --crate-type=rlib
//@[staticlib_] compile-flags: --crate-type=staticlib

#![crate_name = "NonSnakeCase"]
//[cdylib_,dylib_,lib_,proc_macro_,rlib_,staticlib_]~^ ERROR crate `NonSnakeCase` should have a snake case name
#![deny(non_snake_case)]

fn main() {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
error: crate `NonSnakeCase` should have a snake case name
--> $DIR/lint-non-snake-case-crate.rs:22:18
|
LL | #![crate_name = "NonSnakeCase"]
| ^^^^^^^^^^^^ help: convert the identifier to snake case: `non_snake_case`
|
note: the lint level is defined here
--> $DIR/lint-non-snake-case-crate.rs:24:9
|
LL | #![deny(non_snake_case)]
| ^^^^^^^^^^^^^^

error: aborting due to 1 previous error

0 comments on commit 5050837

Please sign in to comment.