[ https://issues.apache.org/jira/browse/GROOVY-7428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14578823#comment-14578823 ]
Jochen Theodorou commented on GROOVY-7428: ------------------------------------------ I too think that it behaves like that in Scala, because it is not a `native` operator. If plus/mul wouldn't be native then something like `2+3*4` and `3*4+2` would also not give the same results, since the compiler is forced to give it a fixed order , and the order has nothing to do with mathematical rules. As for Excel... well... I think we can ignore that one ;) > Change precedence priority of ** compared to pre/post inc/dec and unary > plus/minus > ---------------------------------------------------------------------------------- > > Key: GROOVY-7428 > URL: https://issues.apache.org/jira/browse/GROOVY-7428 > Project: Groovy > Issue Type: Improvement > Reporter: Paul King > Assignee: Paul King > Labels: breaking > Fix For: 2.5.0-beta-1 > > > Currently the precedence order is: > {noformat} > level 1: post inc/dec > level 2: power > level 3: pre inc/dec > {noformat} > The original intention, I believe, was always: > {noformat} > level 1: post inc/dec > level 2: pre inc/dec > level 3: power > {noformat} > This leads to some unintuitive behavior: > while these are the same: > {code} > println (-9 + 2) // -7 > println ((-9) + 2) // -7 > {code} > these are different: > {code} > println (-9 ** 2) // -81 actually: println (-(9 ** 2)) > println ((-9) ** 2) // 81 > {code} > Similar anomalies occur between {{**}} and {{++}}/{{--}} -- This message was sent by Atlassian JIRA (v6.3.4#6332)