[
https://issues.apache.org/jira/browse/GROOVY-8549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16440952#comment-16440952
]
John Wagenleitner commented on GROOVY-8549:
-------------------------------------------
Another work-around is to cast the expression to an {{int/Integer}}, ex.
{{list[(int)idx-1]++}}
The following may be somewhat related though might warrant a separate issue
since it doesn't seem to work in any 2.x release.
{code:groovy}
import groovy.transform.CompileStatic
@CompileStatic
def method() {
def list = [0, 1, 2, 3]
List<Integer> board = [1]
//works with casting to `int`/`Integer`, list[board[0] as Integer]++
//and up to 2.4.12 works if part of an expression, list[board[0] - 0]++
list[board[0]]++
list
}
assert method() == [0, 2, 2, 3]{code}
> Compile Static causes getAt to fail
> -----------------------------------
>
> Key: GROOVY-8549
> URL: https://issues.apache.org/jira/browse/GROOVY-8549
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Affects Versions: 2.4.13, 2.5.0-beta-3, 2.4.14, 3.0.0-alpha-2, 2.4.15
> Environment: Intellij plus various versions of Groovy; the same
> problem also occurs in Eclipse-Groovy with the same versions
> Reporter: Jon Kerridge
> Priority: Major
>
> I can reproduce by adding @CompileStatic to the example I tried previously
> and can confirm that 2.4.13 is where the regression started. Workaround would
> be to remove @CompileStatic until we can get a fix in place. If you can raise
> a bug issue in Jira, that would be great.
> the reproducer following is a shortened version created by Paul King:
> {code}
> import groovy.transform.CompileStatic
>
> @CompileStatic
> def method() {
> def list = [0, 1, 2, 3]
> for (idx in 1..2) {
> list[idx-1]++
> }
> list
> }
>
> assert method() == [1, 2, 2, 3]
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)