-
Notifications
You must be signed in to change notification settings - Fork 0
/
clippy
38 lines (36 loc) · 2.24 KB
/
clippy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash
# enum-glob-use used tastefully, inside small scopes doesn't cause a problem,
# besides sometimes needing to disambiguate.
# default-trait-access enables the wonderfully terse `d` macro. I think the amount
# of places that macro is used is the best argument for saving those characters.
# wildcard-imports can be used carefully to prevent them from making it hard to find
# where things are imported from, if when creating them we ensure that in each
# module there is at most one module import that uses them. It would be nice to
# have a lint for that though.
# too-many-lines turns out, in practice, to encourage time-wasting or even bad
# changes to the code. For example, cramming code into a one-liner to get under
# the threshold. Or worse, splitting up code sections that should not be split up:
# Given a function `foo`, that checks an important precondition, splitting out a
# new function called `bar` containing code that relies on the precondition,
# while keeping the checkiung code in `foo` creates a new possible bug. It is
# now possible to call `bar` without checking the precondition, where it wasn't
# possible to do that before `bar` was split out.
# copy-iterator seems insufficently justified to me, as I have never been caught out
# by an iterator being copy. I also don't think my usual coding patterns would
# result in errors with `Copy` iterators. I reserve the right to change my mind
# later, after being bit by it, if that ever happens.
# items-after-statements triggers even if a const is introduced after statement that
# does not use the constant. I personally find putting the constant directly above
# its first use to be easier to read, since I don't need to go look back at what
# the value of the constant is.
# trait-duplication-in-bounds seems to currently be producing false positives.
cargo clippy --color=always "$@" -- -D clippy::pedantic \
-A clippy::enum-glob-use \
-A clippy::default-trait-access \
-A clippy::wildcard-imports \
-A clippy::too-many-lines \
-A clippy::copy-iterator \
-A clippy::items-after-statements \
-A clippy::trait-duplication-in-bounds \
-D clippy::missing_safety_doc \
-D clippy::undocumented_unsafe_blocks \