CONFUSABLE_IDENTS in rustc_lint::non_ascii_idents - Rust
Description: The `confusable_idents` lint detects visually confusable pairs between identifiers.

Skip to main content

## CONFUSABLE_IDENTS

# Static CONFUSABLE_IDENTS

Source

    pub static CONFUSABLE_IDENTS: &Lint

Expand description

The `confusable_idents` lint detects visually confusable pairs between identifiers.

#### §Example

    // Latin Capital Letter E With Caron
    pub const Ě: i32 = 1;
    // Latin Capital Letter E With Breve
    pub const Ĕ: i32 = 2;

{{produces}}

#### §Explanation

This lint warns when different identifiers may appear visually similar, which can cause confusion.

The confusable detection algorithm is based on Unicode® Technical Standard #39 Unicode Security Mechanisms Section 4 Confusable Detection. For every distinct identifier X execute the function `skeleton(X)`. If there exist two distinct identifiers X and Y in the same crate where `skeleton(X) = skeleton(Y)` report it. The compiler uses the same mechanism to check if an identifier is too similar to a keyword.

Note that the set of confusable characters may change over time. Beware that if you “forbid” this lint that existing code may fail in the future.