[ https://issues.apache.org/jira/browse/GROOVY-10546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17512455#comment-17512455 ]
Christopher Smith commented on GROOVY-10546: -------------------------------------------- It seems there was a forum where planning for this update happened. I'm on groovy-dev, but I didn't see the conversation; is there another place where these discussions are focused? -- Christopher Smith > Regression: Indy compiler in 4.0 uses wrong key for map lookup > -------------------------------------------------------------- > > Key: GROOVY-10546 > URL: https://issues.apache.org/jira/browse/GROOVY-10546 > Project: Groovy > Issue Type: Bug > Components: Compiler > Reporter: Christopher Smith > Priority: Critical > Attachments: closure.javap.txt, image-2022-03-25-10-37-24-960.png, > screenshot-1.png > > > I have a Gremlin pipeline that returns a complex object as a nested map. > {code} > private static final String LABEL_INV = 'invitation-1234' > g./... > .select(LABEL_INV, LABEL_OTHER) > .next() > .with {] invitation: process(it[LABEL_INV]) ]} > {code} > This was working correctly in Groovy 3. In Groovy 4, however, the map lookup > is passed {{null}} instead of the value in the constant. The query builder > correctly passes the constant value, and the map contained in {{it}} has the > constant as a key as expected. However, {{DefaultGroovyMethods#getAt(Map, > Object)}} is passed the {{it}} map as self but {{null}} for the key. > I am a complete noob at InvokeDynamic, but _perhaps_ this seems to be a > sequencing issue where indy binds the value for {{key}} in bootstrap before > actually initializing it? -- This message was sent by Atlassian Jira (v8.20.1#820001)