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

Eric Milles commented on GROOVY-11144:
--------------------------------------

In terms of IDE, I did adjust eclipse tooling so you see the dynamic property 
highlighting for Groovy 4+. You’d need to check to see if IntelliJ accounts for 
this difference. 

It is not really ambiguous, although the rules of precedence are more strictly 
implemented in 4. If you think there should be a compiler warning, then please 
open a new ticket for that. Not sure if dynamic mode will have enough info to 
warn, but STC may be able to do something. I’m looking at warning about private 
field of non-final class access. 

> MissingPropertyEx when accessing private static field in closure of same class
> ------------------------------------------------------------------------------
>
>                 Key: GROOVY-11144
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11144
>             Project: Groovy
>          Issue Type: Bug
>          Components: groovy-runtime
>    Affects Versions: 4.0.13
>         Environment: Windows 10, Groovy 4.0.13, Java 17.0.8
>            Reporter: Andreas Turban
>            Assignee: Eric Milles
>            Priority: Major
>             Fix For: 5.0.0-alpha-1
>
>         Attachments: Test.groovy
>
>
> When accessing a private static final field from a Closure within the same 
> class Groovy 4 throws a MissingPropertyException. The code works in Groovy 
> 2.5.22 & 3.0.18.
> The real instance of the object needs to be a subtype of the class containing 
> the constant.
> See attached code to reproduce.
> *Expected behavior:*
> The code runs without error
> *Actual behavior:*
> Groovy 4 throws:
> {{groovy.lang.MissingPropertyException: No such property: field for class: 
> FirstEvent}}
> {{    at BaseEvent$_init_closure1.doCall(Test.groovy:7)}}
> {{    at BaseEvent.init(Test.groovy:7)}}
> {{    at Test.run(Test.groovy:15)}}
> *Notes:*
> Interestingly if you remove the static keyword from {color:#0033b3}private 
> static final {color}{color:#000000}String {color}{color:#871094}field 
> {color}= {color:#067d17}"name"{color}
> it fails in all three versions 2.5.22, 3.0.18 & 4.0.13 with a 
> {{{}MissingPropertyException{}}}.
> I would expect that the code should also work for these cases.
>  
> The problem came up in a discussion about a Spock issue 
> [#1544|https://github.com/spockframework/spock/issues/1544].



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

Reply via email to