[ 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)