[ 
https://issues.apache.org/jira/browse/GROOVY-11633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17946642#comment-17946642
 ] 

Paul King commented on GROOVY-11633:
------------------------------------

I don't think we have a way in a trait to say that we wanted a final getter?
{code}
trait HasName {
    final String name
//    final String getName() { name.toLowerCase() }
}

class Thing implements HasName {
    Thing(String name) {
        HasName__name = name
    }
//    String getName() {
//        HasName__name.toUpperCase()
//    }
}

println new Thing('Thingee').name
{code}

> final fields no longer produce final getters
> --------------------------------------------
>
>                 Key: GROOVY-11633
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11633
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 4.0.24, 4.0.25, 4.0.26
>            Reporter: Octavia Togami
>            Assignee: Eric Milles
>            Priority: Major
>         Attachments: FinalProp.groovy
>
>
> In Groovy 3 and versions of Groovy 4 at or before 4.0.23, a `final` field 
> would also produce a `final` getter. Due to changes made in 
> https://github.com/apache/groovy/commit/88c6336021f71d702da5292aeaac9e9859aeab1a
>  (discovered via `git bisect`), 4.0.24 and onwards now produce a non-`final` 
> getter, which allows overriding of the method. A reproducer which should fail 
> to compile if the issue is fixed is attached.
> This has a minor affect on Gradle's upgrade to Groovy 4, where some 
> properties won't properly attach to their owning object and produce worse 
> error messages.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to