[ https://issues.apache.org/jira/browse/GROOVY-7428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14578735#comment-14578735 ]
Paul King commented on GROOVY-7428: ----------------------------------- Scala follows what Excel does: {code} import scala.math.pow object HelloWorld { implicit class PowerInt(val i:Double) extends AnyVal { def ** (exp:Double):Double = pow(i,exp) } def main(args:Array[String]) { println(-2**4) // => 16.0 } } {code} > 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)