Add test
This commit is contained in:
parent
dedc380df9
commit
a650692f8d
24
tests/ui-internal/slow_symbol_comparisons.fixed
Normal file
24
tests/ui-internal/slow_symbol_comparisons.fixed
Normal 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;
|
||||
}
|
24
tests/ui-internal/slow_symbol_comparisons.rs
Normal file
24
tests/ui-internal/slow_symbol_comparisons.rs
Normal 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;
|
||||
}
|
23
tests/ui-internal/slow_symbol_comparisons.stderr
Normal file
23
tests/ui-internal/slow_symbol_comparisons.stderr
Normal 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
|
||||
|
Loading…
x
Reference in New Issue
Block a user