[ https://issues.apache.org/jira/browse/GROOVY-11287?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17810423#comment-17810423 ]
Eric Milles commented on GROOVY-11287: -------------------------------------- We do try to do some of this, especially for strings. If "two" was a static final field then it should get the constant folded. Because of dynamic programming -- like overriding the plus method/operator -- this kind of optimization may be restricted to Static Compilation. > Perform constant folding for basic math calculations in CS > ---------------------------------------------------------- > > Key: GROOVY-11287 > URL: https://issues.apache.org/jira/browse/GROOVY-11287 > Project: Groovy > Issue Type: New Feature > Components: performance, Static compilation > Affects Versions: 5.0.0-alpha-4, 4.0.17 > Reporter: Oscar N > Priority: Major > > I have the following Groovy code and its Java equivalent: > {code:groovy} > @CompileStatic > final class Main { > private static final int ONE = 1 > static void main(String[] args) { > int two = ONE + 1 > println two > } > } > {code} > {code:java} > public final class JavaMain { > private static final int ONE = 1; > public static void main(String[] args) { > int two = ONE + 1; > System.out.println(two); > } > } > {code} > In Groovy, it currently compiles to: > {code}int two = ONE + 1{code} > In Java, the calculation is done at compile-time and inlined: > {code}int two = 2{code} > It would be great if Groovy also did this. -- This message was sent by Atlassian Jira (v8.20.10#820010)