title: Protocol requires that delegate inherit from UIViewController
body: <p>I have a protocol <code>ShareDelegate</code> that looks like this:</p>
  
  <pre><code>protocol ShareDelegate : class {
      func share(event: EventJSONModel, skipToTime time: CMTime?, view: UIView, completion: @escaping () -&gt; ())
  }
  
  extension ShareDelegate where Self: UIViewController {
      func share(event: EventJSONModel, skipToTime time: CMTime? = nil, view: UIView, completion: @escaping () -&gt; ()) {
  
      }
  }
  </code></pre>
  
  <p>Then when I use this as a delegate:</p>
  
  <pre><code>weak var delegate: ShareDelegate?
  </code></pre>
  
  <p>and then call the delegate function:</p>
  
  <pre><code>delegate?.share(event: event, view: view, completion: completion)
  </code></pre>
  
  <p>it gives me the following error</p>
  
  <p><code>'ShareDelegate' requires that 'ShareDelegate' inherit from 'UIViewController'
  </code></p>
  
  <p>If I remove the <code>skipToTime time: CMTime?</code> part of the extension it works fine. Why??</p>