summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/unicode.fixed
blob: 94b4723452fada45a142dcd5dc7992e028ae8b60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// run-rustfix
// compile-flags: --test
#![allow(dead_code)]

#[warn(clippy::invisible_characters)]
fn zero() {
    print!("Here >\u{200B}< is a ZWS, and \u{200B}another");
    print!("This\u{200B}is\u{200B}fine");
    print!("Here >\u{AD}< is a SHY, and \u{AD}another");
    print!("This\u{ad}is\u{ad}fine");
    print!("Here >\u{2060}< is a WJ, and \u{2060}another");
    print!("This\u{2060}is\u{2060}fine");
}

#[warn(clippy::unicode_not_nfc)]
fn canon() {
    print!("̀àh?");
    print!("a\u{0300}h?"); // also ok
}

mod non_ascii_literal {
    #![deny(clippy::non_ascii_literal)]

    fn uni() {
        print!("\u{dc}ben!");
        print!("\u{DC}ben!"); // this is ok
    }

    // issue 8013
    fn single_quote() {
        const _EMPTY_BLOCK: char = '\u{25b1}';
        const _FULL_BLOCK: char = '\u{25b0}';
    }

    #[test]
    pub fn issue_7739() {
        // Ryū crate: https://github.com/dtolnay/ryu
    }

    mod issue_8263 {
        #![deny(clippy::non_ascii_literal)]

        // Re-allow for a single test
        #[test]
        #[allow(clippy::non_ascii_literal)]
        fn allowed() {
            let _ = "悲しいかな、ここに日本語を書くことはできない。";
        }

        #[test]
        fn denied() {
            let _ = "\u{60b2}\u{3057}\u{3044}\u{304b}\u{306a}\u{3001}\u{3053}\u{3053}\u{306b}\u{65e5}\u{672c}\u{8a9e}\u{3092}\u{66f8}\u{304f}\u{3053}\u{3068}\u{306f}\u{3067}\u{304d}\u{306a}\u{3044}\u{3002}";
        }
    }
}

fn main() {
    zero();
    canon();
}