about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMario Carneiro <di.gama@gmail.com>2023-09-03 17:16:06 +0200
committerMario Carneiro <di.gama@gmail.com>2023-09-03 17:16:06 +0200
commit1317378b9e31306f45ece0be21104a798b4ba73c (patch)
treee73289aca9498ed86b1fa7ce839616d6f277f031
parent61a2f972b3ae063512cdcd3e10fd2f95319fec24 (diff)
downloadrust-1317378b9e31306f45ece0be21104a798b4ba73c.tar.gz
rust-1317378b9e31306f45ece0be21104a798b4ba73c.zip
fix todo item check, remove unimplemented
-rw-r--r--clippy_lints/src/loops/never_loop.rs4
-rw-r--r--tests/ui/never_loop.rs2
-rw-r--r--tests/ui/never_loop.stderr11
3 files changed, 13 insertions, 4 deletions
diff --git a/clippy_lints/src/loops/never_loop.rs b/clippy_lints/src/loops/never_loop.rs
index 5845be870d4..7b27c4132de 100644
--- a/clippy_lints/src/loops/never_loop.rs
+++ b/clippy_lints/src/loops/never_loop.rs
@@ -7,7 +7,7 @@ use clippy_utils::source::snippet;
 use rustc_errors::Applicability;
 use rustc_hir::{Block, Destination, Expr, ExprKind, HirId, InlineAsmOperand, Pat, Stmt, StmtKind};
 use rustc_lint::LateContext;
-use rustc_span::Span;
+use rustc_span::{sym, Span};
 use std::iter::{once, Iterator};
 
 pub(super) fn check<'tcx>(
@@ -273,7 +273,7 @@ fn never_loop_expr<'tcx>(
     });
     if  let NeverLoopResult::Diverging = result &&
         let Some(macro_call) = root_macro_call_first_node(cx, expr) &&
-        let "todo" | "unimplemented" = cx.tcx.item_name(macro_call.def_id).as_str()
+        let Some(sym::todo_macro) = cx.tcx.get_diagnostic_name(macro_call.def_id)
     {
         // We return MayContinueMainLoop here because we treat `todo!()` and
         // `unimplemented!()` macros as potentially containing any code,
diff --git a/tests/ui/never_loop.rs b/tests/ui/never_loop.rs
index cee52dfd85b..c67a6d4494e 100644
--- a/tests/ui/never_loop.rs
+++ b/tests/ui/never_loop.rs
@@ -391,7 +391,7 @@ pub fn test32() {
         panic!("oh no");
     }
     loop {
-        // no error
+        //~^ ERROR: this loop never actually loops
         unimplemented!("not yet");
     }
     loop {
diff --git a/tests/ui/never_loop.stderr b/tests/ui/never_loop.stderr
index 37ccd63d27c..50cec32cabd 100644
--- a/tests/ui/never_loop.stderr
+++ b/tests/ui/never_loop.stderr
@@ -170,5 +170,14 @@ LL | |         panic!("oh no");
 LL | |     }
    | |_____^
 
-error: aborting due to 15 previous errors
+error: this loop never actually loops
+  --> $DIR/never_loop.rs:393:5
+   |
+LL | /     loop {
+LL | |
+LL | |         unimplemented!("not yet");
+LL | |     }
+   | |_____^
+
+error: aborting due to 16 previous errors