title: 'final' keyword in Groovy
body: <p>Is this a bug or a deliberate design decision by the folks at Groovy?</p>
  
  <pre><code>final String x = "a"
  x = "b"
  </code></pre>
  
  <p>You run this and it would work, no problem. Shouldn't a runtime exception be thrown instead? Annotating the class with <code>@CompileStatic</code> didn't help either. I was expecting a compilation error when <code>@CompileStatic</code> is used.</p>