[ https://issues.apache.org/jira/browse/GROOVY-7511?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
César Izurieta updated GROOVY-7511: ----------------------------------- Description: When running this code: {code:title=test.groovy|borderStyle=solid} class Test1 { String x = "1" Map getMap() { [ key: x ] } } class Test2 extends Test1 { @Override String getX() { return "2" } } assert new Test2().map.key == "2" {code} The assert fails. The reason seems to be that the {{getMap}} method doesn't call {{this.getX()}} method but {{this.x}} directly. Using {{getX()}} instead of {{x}} works as expected. was: When running this code: {code:title=test.groovy|borderStyle=solid} @groovy.transform.CompileStatic enum A { X } @groovy.transform.CompileStatic class Test1 { String x = "1" def getStringMap() { [ "x": x ] } def getEnumMap() { [ (A.X): x ] } } @groovy.transform.CompileStatic class Test2 extends Test1 { @Override String getX() { return "2" } } def test = new Test2() assert test.stringMap["x"] == "2" assert test.enumMap[A.X] == "2" {code} The second assert fails. The reason seems to be that the {{getEnumMap}} method doesn't call {{this.getX()}} method but {{this.x}} directly. Removing the static compilation annotations makes the code work. > Static Compilation with implicit EnumMap doesn't use getter > ----------------------------------------------------------- > > Key: GROOVY-7511 > URL: https://issues.apache.org/jira/browse/GROOVY-7511 > Project: Groovy > Issue Type: Bug > Components: Compiler, Static compilation > Affects Versions: 2.4.4 > Reporter: César Izurieta > Assignee: Cédric Champeau > Priority: Minor > > When running this code: > {code:title=test.groovy|borderStyle=solid} > class Test1 { > String x = "1" > Map getMap() { > [ key: x ] > } > } > class Test2 extends Test1 { > @Override > String getX() { > return "2" > } > } > assert new Test2().map.key == "2" > {code} > The assert fails. The reason seems to be that the {{getMap}} method doesn't > call {{this.getX()}} method but {{this.x}} directly. Using {{getX()}} instead > of {{x}} works as expected. -- This message was sent by Atlassian JIRA (v6.3.4#6332)