# SE-0299 Extending Static Member Lookup in Generic Contexts

**URL:** <https://forums.swift.org/t/se-0299-extending-static-member-lookup-in-generic-contexts/43958>\
**Category:** Proposal Reviews\
**Created:** [January 18, 2021, 5:26pm UTC](https://forums.swift.org/t/se-0299-extending-static-member-lookup-in-generic-contexts/43958 "2021-01-18T17:26:00Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![anon9791410](https://avatars.discourse-cdn.com/v4/letter/a/9fc348/32.png) [@anon9791410](https://forums.swift.org/u/anon9791410)\
**Post date:** [January 18, 2021, 7:27pm UTC](https://forums.swift.org/t/se-0299-extending-static-member-lookup-in-generic-contexts/43958/3 "2021-01-18T19:27:32Z")

</div>

I would like this, because I wouldn't abuse it, but as Jordan says, it breaks the Liskov substitution principle, so it shouldn't be done. 😞

(_Now, allow for the `final` keyword to be used, to prevent that, and I think you might have a solution._)

However, we've always needed to be able to refer to protocols and generic types as non-derivable namespaces, and erased types. Not having that feature has resulted in the `AnyX` mess of a pattern.

Looks to me like [the linked "would require significant changes to the implementation of protocols" thread](https://forums.swift.org/t/protocol-metatype-extensions-to-better-support-swiftui/25469) mostly is what needs to be done. It just needs to apply to generic types as well as protocols.

---

_[View the full topic](https://forums.swift.org/t/se-0299-extending-static-member-lookup-in-generic-contexts/43958)._
