# \#\[derive(Debug)\] by default

**URL:** <https://internals.rust-lang.org/t/derive-debug-by-default/11734>\
**Category:** language design\
**Created:** [January 31, 2020, 2:36am UTC](https://internals.rust-lang.org/t/derive-debug-by-default/11734 "2020-01-31T02:36:10Z")\
**Posts on this page:** 1\
**Showing post:** 11

<div class="post-metadata">

**Author:** ![scottmcm](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/scottmcm/32/2355_2.png) [@scottmcm](https://internals.rust-lang.org/u/scottmcm)\
**Post date:** [January 31, 2020, 11:29pm UTC](https://internals.rust-lang.org/t/derive-debug-by-default/11734/11 "2020-01-31T23:29:24Z")

</div>

> [@alfie](#):
>
> IMHO lots of `derive(Debug)` sprinkled clutters code too

Personally I haven't been too annoyed with that, since it's usually `#[derive(Debug, Clone)]` or more, so just removing the `Debug, ` doesn't feel like it's make all that much of a difference.

Which is, of course, additional evidence for notriddle's point about floodgates and wanting the same feature for more traits. I suppose that "auto-derived" traits _would_ combo well with [expanded negative impls](https://internals.rust-lang.org/t/explicit-negative-impls-to-fix-pin-soundness-hole/11587), though...

---

_[View the full topic](https://internals.rust-lang.org/t/derive-debug-by-default/11734)._
