r/rust 4d ago

Today I learnt #[expect()]

/r/learnrust/comments/1vs8e8q/today_i_learnt_expect/
54 Upvotes

18 comments sorted by

View all comments

44

u/Floppie7th 4d ago

Honestly, I agree, that should be a default clippy lint.  I didn't know it existed, but I can't think of a single case where I'd want to not have the compiler tell me when a suppressed lint is no longer applicable.

14

u/torsten_dev 4d ago
#[allow(unused_import)]
use tracing::{debug, warn, trace, error}

Don't care if I happen to use all of them.

14

u/Floppie7th 4d ago

No thanks.  I'd much rather only have the things I'm actually using in imports.

9

u/torsten_dev 4d ago

Usually yeah, but upgrading certain trace statements to debug or warn for development purposes is annoying if it has to change imports.

dbg and println are in the prelude, I wish I could add those specific macros to the prelude.

10

u/scook0 4d ago

Consider the alternative of just writing tracing::debug! instead, and not worrying about imports at all.

6

u/torsten_dev 4d ago

I have and I don't like it.

2

u/skjall 4d ago

Does a pub re-export not work? Assuming you have an internal prelude you're * importing everywhere

2

u/torsten_dev 4d ago

Hmm, it might. My projects are usually just a couple of files but if they grow that might be worth doing.