Split and expand nonstandard-style lints unicode unit test.

This commit is contained in:
Charles Lew 2020-06-28 23:28:43 +08:00
parent 25687caa2e
commit e8f5785bfc
7 changed files with 189 additions and 16 deletions

View file

@ -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() {}

View file

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

View file

@ -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() {}

View file

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

View file

@ -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() {}

View file

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

View file

@ -1,16 +0,0 @@
// check-pass
#![allow(dead_code)]
#![forbid(non_camel_case_types)]
#![forbid(non_upper_case_globals)]
#![feature(non_ascii_idents)]
// Some scripts (e.g., hiragana) don't have a concept of
// upper/lowercase
struct ;
static : usize = 0;
pub fn main() {}