[ https://issues.apache.org/jira/browse/GROOVY-8385?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jochen Theodorou reassigned GROOVY-8385: ---------------------------------------- Assignee: Jochen Theodorou > CompileStatic: Improved method call/property access Java compatibility for > Minecraft Forge obfuscation support > -------------------------------------------------------------------------------------------------------------- > > Key: GROOVY-8385 > URL: https://issues.apache.org/jira/browse/GROOVY-8385 > Project: Groovy > Issue Type: Improvement > Components: bytecode > Reporter: mgroovy > Assignee: Jochen Theodorou > Priority: Minor > Labels: Forge, Java, JavaCompatibility, Minecraft, Modding > > * Even with @CompileStatic the Groovy compiler creates bytecode for method > calls / property access which is dynamic in nature. > * This means that e.g. Minecraft Forge's obfuscator does not pick up the > calls in the generated bytecode, which means they do not get obfuscated, > which in turn makes the code fail when executed in Minecraft. > * This effectively makes it nearly impossible to write Minecraft mods with > Groovy, which in turn is a wasted opportunity to get people involved with > Groovy early on. > * Possible approaches to improve the situation: > ## Improve on a fundamental level: According to [~paulk] only a few calls are > required to be done dynamically for Groovy functionality to work as expected > under @CompileStatic. > *** The problem seems to be that it could be hard to be a 100% sure no edge > case is overlooked, as to not break @CompileStatic in situations where e.g. > no 100% Java-call-compatibility is needed. > ## Improve through newly introduced @CompileStatic parameters > *** => Static method call / property access bytecode is generated for method > code / all class methods repectively (with possible exceptions for the know > cases mentioned above). > ## Improve through newly introduced @ObfuscationJavaCompatibility annotation > that can be put on a method or class > *** behavior same as for @CompileStatic parameters above -- This message was sent by Atlassian JIRA (v6.4.14#64029)