Laurenz Tontsch created GROOVY-7473: ---------------------------------------
Summary: ineffient code generation Key: GROOVY-7473 URL: https://issues.apache.org/jira/browse/GROOVY-7473 Project: Groovy Issue Type: Bug Components: bytecode, class generator Affects Versions: 2.4.3 Reporter: Laurenz Tontsch Groovy 2.4.3 generates not the most effient byte code of a simple statement like "in". e.g. The following statement: If object.stringProperty in ["State1", "State2", "State3" gets complied in: if (DefaultTypeTransformation.booleanUnbox((ScriptBytecodeAdapter.createList(new Object[] { "State1", "State2", "State3" }) == null ? 1 : 0) != 0 ? Boolean.valueOf(object.getStringProperty() == null) : Boolean.valueOf(DefaultGroovyMethods.isCase(ScriptBytecodeAdapter.createList(new Object[] { "State1", "State2 ", "State3" }), object. getStringProperty ())))) instead of this a more effient construct would be the usage of an static list e.g. static List<String> l1; static { l1 = new LinkedList<String>(); l1.add("State1"); l1.add("State2"); l1.add("State3"); } if (DefaultTypeTransformation.booleanUnbox((l1 == null ? 1 : 0) != 0 ? Boolean.valueOf(object.getStringProperty() == null) : Boolean.valueOf(DefaultGroovyMethods.isCase(l1, object. getStringProperty ())))) -- This message was sent by Atlassian JIRA (v6.3.4#6332)