title: Swift static members in extensions and a declaration cannot be both 'final' and 'dynamic'
body: <p>I'm experiencing a strange bug, and even though there are answered questions about it, none really explains what's going on.</p>
  
  <p>If I define the following class in Swift 3.0, the compiler creates a dynamic getter for pi for Objective-C:</p>
  
  <pre><code>@objc class Thing : NSObject {
  
      public static let pi = NSNumber(value:3.1415926)
  }
  </code></pre>
  
  <p>However, if I move the declaration into an extension, all hell breaks loose:</p>
  
  <pre><code>@objc class Thing : NSObject {
  
  
  }
  
  extension Thing{
      public static let pi = NSNumber(value:3.1415926)
  
  }
  </code></pre>
  
  <p>I get the following error:</p>
  
  <pre><code>error: a declaration cannot be both 'final' and 'dynamic'
  </code></pre>
  
  <p>Why is it any different declaring it in an extension or in the body of the class?</p>
  
  <p>Who is final??</p>