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

Jochen Theodorou commented on GROOVY-11070:
-------------------------------------------

If we restrict the support to -size..+(size-1) we could do a simple    
{code:Java}
private static int cal(int i, Object[] foo)  {
     if (i>=0) return i;
     return foo.length + i;
   }
{code}
maybe even directly compiled into the bytecode and the performance overhead 
seems to be negligible


> ObjectArrayStaticTypesHelper does not handle negative indices
> -------------------------------------------------------------
>
>                 Key: GROOVY-11070
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11070
>             Project: Groovy
>          Issue Type: Bug
>          Components: Static compilation
>    Affects Versions: 4.0.12
>            Reporter: Christopher Smith
>            Priority: Minor
>
> In general, the index-based DGM {{getAt}} has the convenient feature of 
> wrapping negative indices to "from-the-end"-based indices. However, the STC's 
> implementation of {{getAt}} for arrays (in {{ObjectArrayStaticTypesHelper}} 
> and the companion classes) does not do this an instead throws AIOOBE on a 
> negative index. It should have consistent behavior with other indexing types.



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

Reply via email to