title: Default implementation in protocol is not working for my case
body: <p>I simulate my case in this example:</p>
  
  <pre><code>protocol MyProtocol {
  
      func doSomething()
  }
  
  extension MyProtocol {
  
      func doSomething() {
          print("Do something")
      }
  }
  
  class MyViewController: UIViewController, MyProtocol {
  
      let button = UIButton()
  
      override func viewDidLoad() {
          super.viewDidLoad()
          button.addTarget(self, action: #selector(doSomething), for: .touchUpInside)
      }
  }
  </code></pre>
  
  <p>I was expecting that <code>MyViewController</code> has already implemented <code>doSomething()</code> function, cause it was implemented in <code>MyProtocol</code> extension. Unfortunately I'm getting this error:</p>
  
  <blockquote>
    <p>error: argument of '#selector' refers to instance method
    'doSomething()' that is not exposed to Objective-C</p>
  </blockquote>
  
  <p>Am I able to fix or workaround this?</p>