# \[Pre-RFC\] Final Trait Methods

**URL:** <https://internals.rust-lang.org/t/pre-rfc-final-trait-methods/18407>\
**Category:** language design\
**Created:** [February 24, 2023, 1:09am UTC](https://internals.rust-lang.org/t/pre-rfc-final-trait-methods/18407 "2023-02-24T01:09:56Z")\
**Posts on this page:** 1\
**Showing post:** 13

<div class="post-metadata">

**Author:** ![programmerjake](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/programmerjake/32/5893_2.png) [@programmerjake](https://internals.rust-lang.org/u/programmerjake)\
**Post date:** [February 24, 2023, 10:00pm UTC](https://internals.rust-lang.org/t/pre-rfc-final-trait-methods/18407/13 "2023-02-24T22:00:25Z")

</div>

simulating `final` methods (annoying to define the traits, works well enough from the downstream users/implementers afaict):

```rust
pub trait FinalMethodsForAny {
    fn type_id(&self) -> TypeId
    where
        Self: Any,
    {
        ...
    }
}

impl<T: ?Sized> FinalMethodsForAny for T {}

pub trait Any: FinalMethodsForAny + 'static {
    // ...
}

```

---

_[View the full topic](https://internals.rust-lang.org/t/pre-rfc-final-trait-methods/18407)._
