about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml49
1 files changed, 45 insertions, 4 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 5f8bd61015e..40e9e2aa4f3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -105,7 +105,7 @@ dissimilar = "1.0.7"
 either = "1.9.0"
 expect-test = "1.4.0"
 hashbrown = { version = "0.14", features = [
-  "inline-more",
+    "inline-more",
 ], default-features = false }
 indexmap = "2.1.0"
 itertools = "0.12.0"
@@ -118,9 +118,9 @@ semver = "1.0.14"
 serde = { version = "1.0.192", features = ["derive"] }
 serde_json = "1.0.108"
 smallvec = { version = "1.10.0", features = [
-  "const_new",
-  "union",
-  "const_generics",
+    "const_new",
+    "union",
+    "const_generics",
 ] }
 smol_str = "0.2.1"
 text-size = "1.1.1"
@@ -138,8 +138,49 @@ xshell = "0.2.5"
 # We need to freeze the version of the crate, as the raw-api feature is considered unstable
 dashmap = { version = "=5.5.3", features = ["raw-api"] }
 
+[workspace.lints.rust]
+rust_2018_idioms = "warn"
+unused_lifetimes = "warn"
+semicolon_in_expressions_from_macros = "warn"
+
 [workspace.lints.clippy]
+# TODO: Remove the tidy test once the lint table is stable
+
+# lint groups
+complexity = { level = "warn", priority = -1 }
+correctness = { level = "deny", priority = -1 }
+perf = { level = "deny", priority = -1 }
+restriction = { level = "allow", priority = -1 }
+style = { level = "warn", priority = -1 }
+suspicious = { level = "warn", priority = -1 }
+
+# allow following lints
 collapsible_if = "allow"
 needless_pass_by_value = "allow"
 nonminimal_bool = "allow"
 redundant_pattern_matching = "allow"
+# () makes a fine error in most cases
+result_unit_err = "allow"
+# We don't expose public APIs that matter like this
+len_without_is_empty = "allow"
+# We currently prefer explicit control flow return over `...?;` statements whose result is unused
+question_mark = "allow"
+# We have macros that rely on this currently
+enum_variant_names = "allow"
+# Builder pattern disagrees
+new_ret_no_self = "allow"
+non_canonical_clone_impl = "allow"
+non_canonical_partial_ord_impl = "allow"
+format_collect = "allow"
+
+# Following lints should be tackled at some point
+too_many_arguments = "allow"
+type_complexity = "allow"
+
+# warn at following lints
+dbg_macro = "warn"
+todo = "warn"
+unimplemented = "warn"
+rc_buffer = "warn"
+# FIXME enable this, we use this pattern a lot so its annoying work ...
+# str_to_string = "warn"