#![feature(rustc_private)] #![warn(clippy::slow_symbol_comparisons)] extern crate rustc_span; use clippy_utils::sym; use rustc_span::Symbol; fn main() { let symbol = sym!(example); let other_symbol = sym!(other_example); // Should lint let slow_comparison = symbol.as_str() == "example"; //~^ error: comparing `Symbol` via `Symbol::intern` let slow_comparison_macro = symbol.as_str() == "example"; //~^ error: comparing `Symbol` via `Symbol::intern` let slow_comparison_backwards = symbol.as_str() == "example"; //~^ error: comparing `Symbol` via `Symbol::intern` // Should not lint let faster_comparison = symbol.as_str() == "other_example"; let preinterned_comparison = symbol == other_symbol; }