Is it possible to extend non-generic protocol with generics property?

Hello folks! Recently I've discovered UIViewInvalidating protocol in UIKIt, and wanted to extend it like that:

protocol RenderableView { associatedtype P: Hashable var props: P { get } func render() } extension UIView.Invalidations { struct Render<View: RenderableView>: UIViewInvalidating { func invalidate(view: UIView) { guard let renderable = view as? View else { return } renderable.render() } } } 

It works fine, but unfortunately, it seems to be obscured to compile protocol extension as it requires to specify generic

// Reference to generic type 'UIView.Invalidations.Render' requires arguments in <...> extension UIViewInvalidating where Self == UIView.Invalidations.Render { static var render: Render { .init() } } 

Is it possible to achieve something like this?

class ExampleView: UIView, RenderableView { // Currently it is UIView.Invalidations.Render<ExampleView>() // instead of .render @Invalidating(.render, .layout) var props: Props = .empty private let label = UILabel() func render() { label.attributedText = NSAttributedString(string: props.text) } struct Props: Hashable { let text: String static let empty = Props(text: "") } }