TEXT_DIRECTION_CODEPOINT_IN_LITERAL in rustc_lint_defs::builtin - Rust
Description: The `text_direction_codepoint_in_literal` lint detects Unicode codepoints that change the visual representation of text on screen in a way that does not correspond to their on memory representation.

Skip to main content

## TEXT_DIRECTION_CODEPOINT_IN_LITERAL

# Static TEXT_DIRECTION_CODEPOINT_IN_LITERAL

Source

    pub static TEXT_DIRECTION_CODEPOINT_IN_LITERAL: &Lint

Expand description

The `text_direction_codepoint_in_literal` lint detects Unicode codepoints that change the visual representation of text on screen in a way that does not correspond to their on memory representation.

#### §Explanation

The unicode characters `\u{202A}`, `\u{202B}`, `\u{202D}`, `\u{202E}`, `\u{2066}`, `\u{2067}`, `\u{2068}`, `\u{202C}` and `\u{2069}` make the flow of text on screen change its direction on software that supports these codepoints. This makes the text “abc” display as “cba” on screen. By leveraging software that supports these, people can write specially crafted literals that make the surrounding code seem like it’s performing one action, when in reality it is performing another. Because of this, we proactively lint against their presence to avoid surprises.

#### §Example

ⓘ

    #![deny(text_direction_codepoint_in_literal)]
    fn main() {
       println!("{:?}", '‮');
    }

{{produces}}