# Fixing the \`Drop\` trait bound

**URL:** <https://internals.rust-lang.org/t/fixing-the-drop-trait-bound/9458>\
**Category:** language design\
**Created:** [February 16, 2019, 4:00pm UTC](https://internals.rust-lang.org/t/fixing-the-drop-trait-bound/9458 "2019-02-16T16:00:28Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![felix.s](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/felix.s/32/8073_2.png) [@felix.s](https://internals.rust-lang.org/u/felix.s)\
**Post date:** [February 16, 2019, 6:17pm UTC](https://internals.rust-lang.org/t/fixing-the-drop-trait-bound/9458/3 "2019-02-16T18:17:16Z")

</div>

> [@H2CO3](#):
>
> Also, if you deem `Drop` useless, why would you want a `TrivialDrop` trait that means even less?

`TrivialDrop`, as it is named here, does mean something: it means the type and all its transitive constituents have no custom disposal logic, and to destroy a value of the type it suffices to deallocate its backing memory with no other actions performed. This property is currently impossible to express in the trait system except indirectly, through a `Copy` bound, but that has other consequences that may not always be desirable. OP links to a comment of mine under an RFC where having a way to express this property was quite crucial.

The same functionality was proposed by myself in the above-mentioned comment under the name `Forget`, and earlier by @canndrew [under the same name](https://internals.rust-lang.org/t/pre-pre-rfc-forget-trait/5606); @glaebhoerl also [sketched the basic idea on Reddit](https://www.reddit.com/r/rust/comments/4l4wjl/a_report_on_regions_and_linear_types/d3lygjn/), with the name `DropIsForget`. I think it's telling that multiple people stumbled upon this idea independently.

---

_[View the full topic](https://internals.rust-lang.org/t/fixing-the-drop-trait-bound/9458)._
