From 49af51129b943784a3e6dbe33b05b6f683965b28 Mon Sep 17 00:00:00 2001
From: Aleksey Kladov <aleksey.kladov@gmail.com>
Date: Wed, 12 Aug 2020 12:45:38 +0200
Subject: [PATCH] Deny clippy

---
 crates/ra_parser/src/grammar/expressions.rs |  1 -
 xtask/tests/tidy.rs                         | 14 ++++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/crates/ra_parser/src/grammar/expressions.rs b/crates/ra_parser/src/grammar/expressions.rs
index e1c25a838fb..51eaf7af650 100644
--- a/crates/ra_parser/src/grammar/expressions.rs
+++ b/crates/ra_parser/src/grammar/expressions.rs
@@ -509,7 +509,6 @@ fn method_call_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker {
 //     x.1i32;
 //     x.0x01;
 // }
-#[allow(clippy::if_same_then_else)]
 fn field_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker {
     assert!(p.at(T![.]));
     let m = lhs.precede(p);
diff --git a/xtask/tests/tidy.rs b/xtask/tests/tidy.rs
index d65a2acbca1..ca23010213a 100644
--- a/xtask/tests/tidy.rs
+++ b/xtask/tests/tidy.rs
@@ -44,11 +44,25 @@ fn rust_files_are_tidy() {
         let text = fs2::read_to_string(&path).unwrap();
         check_todo(&path, &text);
         check_trailing_ws(&path, &text);
+        deny_clippy(&path, &text);
         tidy_docs.visit(&path, &text);
     }
     tidy_docs.finish();
 }
 
+fn deny_clippy(path: &PathBuf, text: &String) {
+    if text.contains("[\u{61}llow(clippy") {
+        panic!(
+            "\n\nallowing lints is forbidden: {}.
+rust-analyzer intentionally doesn't check clippy on CI.
+You can allow lint globally via `xtask clippy`.
+
+",
+            path.display()
+        )
+    }
+}
+
 #[test]
 fn check_licenses() {
     let expected = "