My inclination would be that if you are going to have a disable option at the method/constructor level, then I'd also enable it at the class level. Imagine inheriting a large Groovy code base and you want to migrate it towards have auto finals. With a class level option you could enable it globally with a configscript and selectively disable on classes that you haven't got around to "fixing" to comply with the stricter style yet. As you start working on a class you might move it from the class level to just the violating methods/constructors and then eventually remove all once you have completed the conversion process. We have the same kind of approach in place for CompileStatic.