use-ink / ink

Polkadot's ink! to write smart contracts.
https://use.ink
Apache License 2.0
1.35k stars 429 forks source link

Add global clippy rules #886

Open cmichi opened 3 years ago

cmichi commented 3 years ago

This issue is blocked by https://github.com/rust-lang/cargo/issues/5034.

We want to have some global clippy rules.

bool_assert_comparison

Allows syntax a la:

assert_eq!(flipper.get(), false);
assert_eq!(flipper.get(), true);

This is the bool_assert_comparison rule, which should be allowed.

With https://github.com/paritytech/ink/pull/884 we unfortunately had to change assert_eq!(flipper.get(), false); to assert!(!flipper.get());. These assert!(!…) expressions should be reverted to the boolean comparison.

new_without_default

For example, our flipper example in readme is currently no valid if you run clippy on it, since it misses a Default implementation for Flipper. This should not be necessary.

gilescope commented 3 years ago

To unblock you: https://crates.io/crates/cargo-lints

cmichi commented 3 years ago

Some lints can also be configured in a clippy.toml: https://github.com/rust-lang/rust-clippy#configuration.

Not sure if this is applicable here.

gilescope commented 2 years ago

Have a look at substrate/.cargo/config.toml - since june this works. It's currently the only way to do it out of the box.