This commit is contained in:
GnomedDev 2024-10-13 16:36:08 +01:00
parent dedc380df9
commit a650692f8d
No known key found for this signature in database
3 changed files with 71 additions and 0 deletions

View File

@ -0,0 +1,24 @@
#![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;
}

View File

@ -0,0 +1,24 @@
#![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 == Symbol::intern("example");
//~^ error: comparing `Symbol` via `Symbol::intern`
let slow_comparison_macro = symbol == sym!(example);
//~^ error: comparing `Symbol` via `Symbol::intern`
let slow_comparison_backwards = sym!(example) == symbol;
//~^ error: comparing `Symbol` via `Symbol::intern`
// Should not lint
let faster_comparison = symbol.as_str() == "other_example";
let preinterned_comparison = symbol == other_symbol;
}

View File

@ -0,0 +1,23 @@
error: comparing `Symbol` via `Symbol::intern`
--> tests/ui-internal/slow_symbol_comparisons.rs:14:27
|
LL | let slow_comparison = symbol == Symbol::intern("example");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Symbol::as_str` and check the string instead: `symbol.as_str() == "example"`
|
= note: `-D clippy::slow-symbol-comparisons` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::slow_symbol_comparisons)]`
error: comparing `Symbol` via `Symbol::intern`
--> tests/ui-internal/slow_symbol_comparisons.rs:16:33
|
LL | let slow_comparison_macro = symbol == sym!(example);
| ^^^^^^^^^^^^^^^^^^^^^^^ help: use `Symbol::as_str` and check the string instead: `symbol.as_str() == "example"`
error: comparing `Symbol` via `Symbol::intern`
--> tests/ui-internal/slow_symbol_comparisons.rs:18:37
|
LL | let slow_comparison_backwards = sym!(example) == symbol;
| ^^^^^^^^^^^^^^^^^^^^^^^ help: use `Symbol::as_str` and check the string instead: `symbol.as_str() == "example"`
error: aborting due to 3 previous errors