-
Notifications
You must be signed in to change notification settings - Fork 12.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of #73839 - crlf0710:snapshot_the_reality, r=Manishearth
Split and expand nonstandard-style lints unicode unit test. RFC 2457 requested that the `nonstandard_style` series of linted be adjusted to cover the non_ascii_identifier case. However when i read the code of those implementations, it seems they're already supporting non_ascii_identifiers. But the exact rules is a little different than what's proposed in RFC 2457. So I splitted and expanded the existing test case to try to exercise every branch in the code. I think it'll also be easier to examine the cases in these unit tests to see whether it's ok to just leave them as is, or some adjustments are needed. r? @Manishearth
- Loading branch information
Showing
7 changed files
with
189 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
#![allow(dead_code)] | ||
|
||
#![forbid(non_camel_case_types)] | ||
#![feature(non_ascii_idents)] | ||
|
||
// Some scripts (e.g., hiragana) don't have a concept of | ||
// upper/lowercase | ||
|
||
// 1. non_camel_case_types | ||
|
||
// Can start with non-lowercase letter | ||
struct Θχ; | ||
struct ヒa; | ||
|
||
struct χa; | ||
//~^ ERROR type `χa` should have an upper camel case name | ||
|
||
// If there's already leading or trailing underscores, they get trimmed before checking. | ||
// This is fine: | ||
struct _ヒb; | ||
|
||
// This is not: | ||
struct __χa; | ||
//~^ ERROR type `__χa` should have an upper camel case name | ||
|
||
// Besides this, we cannot have two continous underscores in the middle. | ||
|
||
struct 对__否; | ||
//~^ ERROR type `对__否` should have an upper camel case name | ||
|
||
struct ヒ__χ; | ||
//~^ ERROR type `ヒ__χ` should have an upper camel case name | ||
|
||
// also cannot have lowercase letter next to a underscore. | ||
// so this triggers the lint: | ||
|
||
struct Hello_你好; | ||
//~^ ERROR type `Hello_你好` should have an upper camel case name | ||
|
||
struct Hello_World; | ||
//~^ ERROR type `Hello_World` should have an upper camel case name | ||
|
||
struct 你_ӟ; | ||
//~^ ERROR type `你_ӟ` should have an upper camel case name | ||
|
||
// and this is ok: | ||
|
||
struct 你_好; | ||
|
||
fn main() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
error: type `χa` should have an upper camel case name | ||
--> $DIR/lint-nonstandard-style-unicode-1.rs:15:8 | ||
| | ||
LL | struct χa; | ||
| ^^ help: convert the identifier to upper camel case: `Χa` | ||
| | ||
note: the lint level is defined here | ||
--> $DIR/lint-nonstandard-style-unicode-1.rs:3:11 | ||
| | ||
LL | #![forbid(non_camel_case_types)] | ||
| ^^^^^^^^^^^^^^^^^^^^ | ||
|
||
error: type `__χa` should have an upper camel case name | ||
--> $DIR/lint-nonstandard-style-unicode-1.rs:23:8 | ||
| | ||
LL | struct __χa; | ||
| ^^^^ help: convert the identifier to upper camel case: `Χa` | ||
|
||
error: type `对__否` should have an upper camel case name | ||
--> $DIR/lint-nonstandard-style-unicode-1.rs:28:8 | ||
| | ||
LL | struct 对__否; | ||
| ^^^^^^ help: convert the identifier to upper camel case: `对_否` | ||
|
||
error: type `ヒ__χ` should have an upper camel case name | ||
--> $DIR/lint-nonstandard-style-unicode-1.rs:31:8 | ||
| | ||
LL | struct ヒ__χ; | ||
| ^^^^^ help: convert the identifier to upper camel case: `ヒΧ` | ||
|
||
error: type `Hello_你好` should have an upper camel case name | ||
--> $DIR/lint-nonstandard-style-unicode-1.rs:37:8 | ||
| | ||
LL | struct Hello_你好; | ||
| ^^^^^^^^^^ help: convert the identifier to upper camel case: `Hello你好` | ||
|
||
error: type `Hello_World` should have an upper camel case name | ||
--> $DIR/lint-nonstandard-style-unicode-1.rs:40:8 | ||
| | ||
LL | struct Hello_World; | ||
| ^^^^^^^^^^^ help: convert the identifier to upper camel case: `HelloWorld` | ||
|
||
error: type `你_ӟ` should have an upper camel case name | ||
--> $DIR/lint-nonstandard-style-unicode-1.rs:43:8 | ||
| | ||
LL | struct 你_ӟ; | ||
| ^^^^ help: convert the identifier to upper camel case: `你Ӟ` | ||
|
||
error: aborting due to 7 previous errors | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#![allow(dead_code)] | ||
|
||
#![forbid(non_snake_case)] | ||
#![feature(non_ascii_idents)] | ||
|
||
// Some scripts (e.g., hiragana) don't have a concept of | ||
// upper/lowercase | ||
|
||
// 2. non_snake_case | ||
|
||
// Can only use non-uppercase letters. | ||
// So this works: | ||
|
||
fn 编程() {} | ||
|
||
// but this doesn't: | ||
|
||
fn Ц() {} | ||
//~^ ERROR function `Ц` should have a snake case name | ||
|
||
// besides this, you cannot use continous underscores in the middle | ||
|
||
fn 分__隔() {} | ||
//~^ ERROR function `分__隔` should have a snake case name | ||
|
||
// but you can use them both at the beginning and at the end. | ||
|
||
fn _______不_连_续_的_存_在_______() {} | ||
|
||
fn main() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
error: function `Ц` should have a snake case name | ||
--> $DIR/lint-nonstandard-style-unicode-2.rs:18:4 | ||
| | ||
LL | fn Ц() {} | ||
| ^ help: convert the identifier to snake case: `ц` | ||
| | ||
note: the lint level is defined here | ||
--> $DIR/lint-nonstandard-style-unicode-2.rs:3:11 | ||
| | ||
LL | #![forbid(non_snake_case)] | ||
| ^^^^^^^^^^^^^^ | ||
|
||
error: function `分__隔` should have a snake case name | ||
--> $DIR/lint-nonstandard-style-unicode-2.rs:23:4 | ||
| | ||
LL | fn 分__隔() {} | ||
| ^^^^^^ help: convert the identifier to snake case: `分_隔` | ||
|
||
error: aborting due to 2 previous errors | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#![allow(dead_code)] | ||
|
||
#![forbid(non_upper_case_globals)] | ||
#![feature(non_ascii_idents)] | ||
|
||
// Some scripts (e.g., hiragana) don't have a concept of | ||
// upper/lowercase | ||
|
||
// 3. non_upper_case_globals | ||
|
||
// Can only use non-lowercase letters. | ||
// So this works: | ||
|
||
static ラ: usize = 0; | ||
|
||
// but this doesn't: | ||
|
||
static τεχ: f32 = 3.14159265; | ||
//~^ ERROR static variable `τεχ` should have an upper case name | ||
|
||
// This has no limit at all on underscore usages. | ||
|
||
static __密__封__线__内__禁__止__答__题__: bool = true; | ||
|
||
fn main() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
error: static variable `τεχ` should have an upper case name | ||
--> $DIR/lint-nonstandard-style-unicode-3.rs:18:8 | ||
| | ||
LL | static τεχ: f32 = 3.14159265; | ||
| ^^^ help: convert the identifier to upper case: `ΤΕΧ` | ||
| | ||
note: the lint level is defined here | ||
--> $DIR/lint-nonstandard-style-unicode-3.rs:3:11 | ||
| | ||
LL | #![forbid(non_upper_case_globals)] | ||
| ^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
error: aborting due to previous error | ||
|
This file was deleted.
Oops, something went wrong.