about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorAlex Macleod <alex@macleod.io>2025-04-18 18:35:20 +0000
committerAlex Macleod <alex@macleod.io>2025-04-18 22:44:16 +0000
commitb52bd96713d1a34b02017c0e272ebd15102885aa (patch)
tree0a3be682aaf20204fd549207dc7651f37c3c831b /tests
parent781fdab9a95320bf8c3eb092ef628352643059bf (diff)
downloadrust-b52bd96713d1a34b02017c0e272ebd15102885aa.tar.gz
rust-b52bd96713d1a34b02017c0e272ebd15102885aa.zip
Replace interning of string literals with preinterned symbols
Diffstat (limited to 'tests')
-rw-r--r--tests/ui-internal/interning_defined_symbol.fixed40
-rw-r--r--tests/ui-internal/interning_defined_symbol.rs40
-rw-r--r--tests/ui-internal/interning_defined_symbol.stderr32
-rw-r--r--tests/ui-internal/interning_literals.fixed31
-rw-r--r--tests/ui-internal/interning_literals.rs31
-rw-r--r--tests/ui-internal/interning_literals.stderr64
-rw-r--r--tests/ui-internal/interning_literals_unfixable.rs16
-rw-r--r--tests/ui-internal/interning_literals_unfixable.stderr40
-rw-r--r--tests/ui-internal/slow_symbol_comparisons.fixed24
-rw-r--r--tests/ui-internal/slow_symbol_comparisons.rs24
-rw-r--r--tests/ui-internal/slow_symbol_comparisons.stderr23
-rw-r--r--tests/ui-internal/unnecessary_symbol_str.fixed26
-rw-r--r--tests/ui-internal/unnecessary_symbol_str.rs26
-rw-r--r--tests/ui-internal/unnecessary_symbol_str.stderr38
14 files changed, 182 insertions, 273 deletions
diff --git a/tests/ui-internal/interning_defined_symbol.fixed b/tests/ui-internal/interning_defined_symbol.fixed
deleted file mode 100644
index 637deaa6de7..00000000000
--- a/tests/ui-internal/interning_defined_symbol.fixed
+++ /dev/null
@@ -1,40 +0,0 @@
-#![deny(clippy::interning_defined_symbol)]
-#![allow(clippy::missing_clippy_version_attribute, clippy::let_unit_value)]
-#![feature(rustc_private)]
-
-extern crate rustc_span;
-
-use rustc_span::symbol::Symbol;
-
-macro_rules! sym {
-    ($tt:tt) => {
-        rustc_span::symbol::Symbol::intern(stringify!($tt))
-    };
-}
-
-fn main() {
-    // Direct use of Symbol::intern
-    let _ = rustc_span::sym::f32;
-    //~^ interning_defined_symbol
-
-    // Using a sym macro
-    let _ = rustc_span::sym::f32;
-    //~^ interning_defined_symbol
-
-    // Correct suggestion when symbol isn't stringified constant name
-    let _ = rustc_span::sym::proc_dash_macro;
-    //~^ interning_defined_symbol
-
-    // interning a keyword
-    let _ = rustc_span::kw::SelfLower;
-    //~^ interning_defined_symbol
-
-    // Interning a symbol that is not defined
-    let _ = Symbol::intern("xyz123");
-    let _ = sym!(xyz123);
-
-    // Using a different `intern` function
-    let _ = intern("f32");
-}
-
-fn intern(_: &str) {}
diff --git a/tests/ui-internal/interning_defined_symbol.rs b/tests/ui-internal/interning_defined_symbol.rs
deleted file mode 100644
index 63c476f6e20..00000000000
--- a/tests/ui-internal/interning_defined_symbol.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-#![deny(clippy::interning_defined_symbol)]
-#![allow(clippy::missing_clippy_version_attribute, clippy::let_unit_value)]
-#![feature(rustc_private)]
-
-extern crate rustc_span;
-
-use rustc_span::symbol::Symbol;
-
-macro_rules! sym {
-    ($tt:tt) => {
-        rustc_span::symbol::Symbol::intern(stringify!($tt))
-    };
-}
-
-fn main() {
-    // Direct use of Symbol::intern
-    let _ = Symbol::intern("f32");
-    //~^ interning_defined_symbol
-
-    // Using a sym macro
-    let _ = sym!(f32);
-    //~^ interning_defined_symbol
-
-    // Correct suggestion when symbol isn't stringified constant name
-    let _ = Symbol::intern("proc-macro");
-    //~^ interning_defined_symbol
-
-    // interning a keyword
-    let _ = Symbol::intern("self");
-    //~^ interning_defined_symbol
-
-    // Interning a symbol that is not defined
-    let _ = Symbol::intern("xyz123");
-    let _ = sym!(xyz123);
-
-    // Using a different `intern` function
-    let _ = intern("f32");
-}
-
-fn intern(_: &str) {}
diff --git a/tests/ui-internal/interning_defined_symbol.stderr b/tests/ui-internal/interning_defined_symbol.stderr
deleted file mode 100644
index 7002805a105..00000000000
--- a/tests/ui-internal/interning_defined_symbol.stderr
+++ /dev/null
@@ -1,32 +0,0 @@
-error: interning a defined symbol
-  --> tests/ui-internal/interning_defined_symbol.rs:17:13
-   |
-LL |     let _ = Symbol::intern("f32");
-   |             ^^^^^^^^^^^^^^^^^^^^^ help: try: `rustc_span::sym::f32`
-   |
-note: the lint level is defined here
-  --> tests/ui-internal/interning_defined_symbol.rs:1:9
-   |
-LL | #![deny(clippy::interning_defined_symbol)]
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: interning a defined symbol
-  --> tests/ui-internal/interning_defined_symbol.rs:21:13
-   |
-LL |     let _ = sym!(f32);
-   |             ^^^^^^^^^ help: try: `rustc_span::sym::f32`
-
-error: interning a defined symbol
-  --> tests/ui-internal/interning_defined_symbol.rs:25:13
-   |
-LL |     let _ = Symbol::intern("proc-macro");
-   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `rustc_span::sym::proc_dash_macro`
-
-error: interning a defined symbol
-  --> tests/ui-internal/interning_defined_symbol.rs:29:13
-   |
-LL |     let _ = Symbol::intern("self");
-   |             ^^^^^^^^^^^^^^^^^^^^^^ help: try: `rustc_span::kw::SelfLower`
-
-error: aborting due to 4 previous errors
-
diff --git a/tests/ui-internal/interning_literals.fixed b/tests/ui-internal/interning_literals.fixed
new file mode 100644
index 00000000000..03e97768b99
--- /dev/null
+++ b/tests/ui-internal/interning_literals.fixed
@@ -0,0 +1,31 @@
+#![allow(clippy::let_unit_value)]
+#![feature(rustc_private)]
+
+extern crate rustc_span;
+
+use clippy_utils::sym;
+use rustc_span::{Symbol, kw};
+
+fn main() {
+    let _ = sym::f32;
+    //~^ interning_literals
+
+    // Correct suggestion when symbol isn't stringified constant name
+    let _ = sym::proc_dash_macro;
+    //~^ interning_literals
+
+    // Interning a keyword
+    let _ = kw::SelfLower;
+    //~^ interning_literals
+
+    // Defined in clippy_utils
+    let _ = sym::msrv;
+    //~^ interning_literals
+    let _ = sym::Cargo_toml;
+    //~^ interning_literals
+
+    // Using a different `intern` function
+    let _ = intern("f32");
+}
+
+fn intern(_: &str) {}
diff --git a/tests/ui-internal/interning_literals.rs b/tests/ui-internal/interning_literals.rs
new file mode 100644
index 00000000000..561fd5702a5
--- /dev/null
+++ b/tests/ui-internal/interning_literals.rs
@@ -0,0 +1,31 @@
+#![allow(clippy::let_unit_value)]
+#![feature(rustc_private)]
+
+extern crate rustc_span;
+
+use clippy_utils::sym;
+use rustc_span::{Symbol, kw};
+
+fn main() {
+    let _ = Symbol::intern("f32");
+    //~^ interning_literals
+
+    // Correct suggestion when symbol isn't stringified constant name
+    let _ = Symbol::intern("proc-macro");
+    //~^ interning_literals
+
+    // Interning a keyword
+    let _ = Symbol::intern("self");
+    //~^ interning_literals
+
+    // Defined in clippy_utils
+    let _ = Symbol::intern("msrv");
+    //~^ interning_literals
+    let _ = Symbol::intern("Cargo.toml");
+    //~^ interning_literals
+
+    // Using a different `intern` function
+    let _ = intern("f32");
+}
+
+fn intern(_: &str) {}
diff --git a/tests/ui-internal/interning_literals.stderr b/tests/ui-internal/interning_literals.stderr
new file mode 100644
index 00000000000..628b97eff84
--- /dev/null
+++ b/tests/ui-internal/interning_literals.stderr
@@ -0,0 +1,64 @@
+error: interning a string literal
+  --> tests/ui-internal/interning_literals.rs:10:13
+   |
+LL |     let _ = Symbol::intern("f32");
+   |             ^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: `-D clippy::interning-literals` implied by `-D warnings`
+   = help: to override `-D warnings` add `#[allow(clippy::interning_literals)]`
+help: use the preinterned symbol
+   |
+LL -     let _ = Symbol::intern("f32");
+LL +     let _ = sym::f32;
+   |
+
+error: interning a string literal
+  --> tests/ui-internal/interning_literals.rs:14:13
+   |
+LL |     let _ = Symbol::intern("proc-macro");
+   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+help: use the preinterned symbol
+   |
+LL -     let _ = Symbol::intern("proc-macro");
+LL +     let _ = sym::proc_dash_macro;
+   |
+
+error: interning a string literal
+  --> tests/ui-internal/interning_literals.rs:18:13
+   |
+LL |     let _ = Symbol::intern("self");
+   |             ^^^^^^^^^^^^^^^^^^^^^^
+   |
+help: use the preinterned symbol
+   |
+LL -     let _ = Symbol::intern("self");
+LL +     let _ = kw::SelfLower;
+   |
+
+error: interning a string literal
+  --> tests/ui-internal/interning_literals.rs:22:13
+   |
+LL |     let _ = Symbol::intern("msrv");
+   |             ^^^^^^^^^^^^^^^^^^^^^^
+   |
+help: use the preinterned symbol
+   |
+LL -     let _ = Symbol::intern("msrv");
+LL +     let _ = sym::msrv;
+   |
+
+error: interning a string literal
+  --> tests/ui-internal/interning_literals.rs:24:13
+   |
+LL |     let _ = Symbol::intern("Cargo.toml");
+   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+help: use the preinterned symbol
+   |
+LL -     let _ = Symbol::intern("Cargo.toml");
+LL +     let _ = sym::Cargo_toml;
+   |
+
+error: aborting due to 5 previous errors
+
diff --git a/tests/ui-internal/interning_literals_unfixable.rs b/tests/ui-internal/interning_literals_unfixable.rs
new file mode 100644
index 00000000000..43872e95a58
--- /dev/null
+++ b/tests/ui-internal/interning_literals_unfixable.rs
@@ -0,0 +1,16 @@
+//@no-rustfix: paths that don't exist yet
+#![feature(rustc_private)]
+
+extern crate rustc_span;
+
+use rustc_span::Symbol;
+
+fn main() {
+    // Not yet defined
+    let _ = Symbol::intern("xyz123");
+    //~^ interning_literals
+    let _ = Symbol::intern("with-dash");
+    //~^ interning_literals
+    let _ = Symbol::intern("with.dot");
+    //~^ interning_literals
+}
diff --git a/tests/ui-internal/interning_literals_unfixable.stderr b/tests/ui-internal/interning_literals_unfixable.stderr
new file mode 100644
index 00000000000..8294453a8f9
--- /dev/null
+++ b/tests/ui-internal/interning_literals_unfixable.stderr
@@ -0,0 +1,40 @@
+error: interning a string literal
+  --> tests/ui-internal/interning_literals_unfixable.rs:10:13
+   |
+LL |     let _ = Symbol::intern("xyz123");
+   |             ^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: `-D clippy::interning-literals` implied by `-D warnings`
+   = help: to override `-D warnings` add `#[allow(clippy::interning_literals)]`
+help: add the symbol to `clippy_utils/src/sym.rs` and use it
+   |
+LL -     let _ = Symbol::intern("xyz123");
+LL +     let _ = sym::xyz123;
+   |
+
+error: interning a string literal
+  --> tests/ui-internal/interning_literals_unfixable.rs:12:13
+   |
+LL |     let _ = Symbol::intern("with-dash");
+   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+help: add the symbol to `clippy_utils/src/sym.rs` and use it
+   |
+LL -     let _ = Symbol::intern("with-dash");
+LL +     let _ = sym::with_dash;
+   |
+
+error: interning a string literal
+  --> tests/ui-internal/interning_literals_unfixable.rs:14:13
+   |
+LL |     let _ = Symbol::intern("with.dot");
+   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+help: add the symbol to `clippy_utils/src/sym.rs` and use it
+   |
+LL -     let _ = Symbol::intern("with.dot");
+LL +     let _ = sym::with_dot;
+   |
+
+error: aborting due to 3 previous errors
+
diff --git a/tests/ui-internal/slow_symbol_comparisons.fixed b/tests/ui-internal/slow_symbol_comparisons.fixed
deleted file mode 100644
index 2cbd646a0fd..00000000000
--- a/tests/ui-internal/slow_symbol_comparisons.fixed
+++ /dev/null
@@ -1,24 +0,0 @@
-#![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;
-}
diff --git a/tests/ui-internal/slow_symbol_comparisons.rs b/tests/ui-internal/slow_symbol_comparisons.rs
deleted file mode 100644
index 0cea3c3fcff..00000000000
--- a/tests/ui-internal/slow_symbol_comparisons.rs
+++ /dev/null
@@ -1,24 +0,0 @@
-#![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;
-}
diff --git a/tests/ui-internal/slow_symbol_comparisons.stderr b/tests/ui-internal/slow_symbol_comparisons.stderr
deleted file mode 100644
index 72cb20a7fed..00000000000
--- a/tests/ui-internal/slow_symbol_comparisons.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-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
-
diff --git a/tests/ui-internal/unnecessary_symbol_str.fixed b/tests/ui-internal/unnecessary_symbol_str.fixed
deleted file mode 100644
index c81554b0235..00000000000
--- a/tests/ui-internal/unnecessary_symbol_str.fixed
+++ /dev/null
@@ -1,26 +0,0 @@
-#![feature(rustc_private)]
-#![deny(clippy::unnecessary_symbol_str)]
-#![allow(
-    clippy::slow_symbol_comparisons,
-    clippy::borrow_deref_ref,
-    clippy::unnecessary_operation,
-    unused_must_use,
-    clippy::missing_clippy_version_attribute
-)]
-
-extern crate rustc_span;
-
-use rustc_span::symbol::{Ident, Symbol};
-
-fn main() {
-    Symbol::intern("foo") == rustc_span::sym::clippy;
-    //~^ unnecessary_symbol_str
-    Symbol::intern("foo") == rustc_span::kw::SelfLower;
-    //~^ unnecessary_symbol_str
-    Symbol::intern("foo") != rustc_span::kw::SelfUpper;
-    //~^ unnecessary_symbol_str
-    Ident::empty().name == rustc_span::sym::clippy;
-    //~^ unnecessary_symbol_str
-    rustc_span::sym::clippy == Ident::empty().name;
-    //~^ unnecessary_symbol_str
-}
diff --git a/tests/ui-internal/unnecessary_symbol_str.rs b/tests/ui-internal/unnecessary_symbol_str.rs
deleted file mode 100644
index 8d773cd738f..00000000000
--- a/tests/ui-internal/unnecessary_symbol_str.rs
+++ /dev/null
@@ -1,26 +0,0 @@
-#![feature(rustc_private)]
-#![deny(clippy::unnecessary_symbol_str)]
-#![allow(
-    clippy::slow_symbol_comparisons,
-    clippy::borrow_deref_ref,
-    clippy::unnecessary_operation,
-    unused_must_use,
-    clippy::missing_clippy_version_attribute
-)]
-
-extern crate rustc_span;
-
-use rustc_span::symbol::{Ident, Symbol};
-
-fn main() {
-    Symbol::intern("foo").as_str() == "clippy";
-    //~^ unnecessary_symbol_str
-    Symbol::intern("foo").to_string() == "self";
-    //~^ unnecessary_symbol_str
-    Symbol::intern("foo").to_ident_string() != "Self";
-    //~^ unnecessary_symbol_str
-    &*Ident::empty().as_str() == "clippy";
-    //~^ unnecessary_symbol_str
-    "clippy" == Ident::empty().to_string();
-    //~^ unnecessary_symbol_str
-}
diff --git a/tests/ui-internal/unnecessary_symbol_str.stderr b/tests/ui-internal/unnecessary_symbol_str.stderr
deleted file mode 100644
index 81918303a73..00000000000
--- a/tests/ui-internal/unnecessary_symbol_str.stderr
+++ /dev/null
@@ -1,38 +0,0 @@
-error: unnecessary `Symbol` to string conversion
-  --> tests/ui-internal/unnecessary_symbol_str.rs:16:5
-   |
-LL |     Symbol::intern("foo").as_str() == "clippy";
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Symbol::intern("foo") == rustc_span::sym::clippy`
-   |
-note: the lint level is defined here
-  --> tests/ui-internal/unnecessary_symbol_str.rs:2:9
-   |
-LL | #![deny(clippy::unnecessary_symbol_str)]
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: unnecessary `Symbol` to string conversion
-  --> tests/ui-internal/unnecessary_symbol_str.rs:18:5
-   |
-LL |     Symbol::intern("foo").to_string() == "self";
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Symbol::intern("foo") == rustc_span::kw::SelfLower`
-
-error: unnecessary `Symbol` to string conversion
-  --> tests/ui-internal/unnecessary_symbol_str.rs:20:5
-   |
-LL |     Symbol::intern("foo").to_ident_string() != "Self";
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Symbol::intern("foo") != rustc_span::kw::SelfUpper`
-
-error: unnecessary `Symbol` to string conversion
-  --> tests/ui-internal/unnecessary_symbol_str.rs:22:5
-   |
-LL |     &*Ident::empty().as_str() == "clippy";
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Ident::empty().name == rustc_span::sym::clippy`
-
-error: unnecessary `Symbol` to string conversion
-  --> tests/ui-internal/unnecessary_symbol_str.rs:24:5
-   |
-LL |     "clippy" == Ident::empty().to_string();
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `rustc_span::sym::clippy == Ident::empty().name`
-
-error: aborting due to 5 previous errors
-