Swift static members in extensions and a declaration cannot be both 'final' and 'dynamic'
<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>