Marc Bogaerts created GROOVY-7640: ------------------------------------- Summary: AST Builder should include superclass properties Key: GROOVY-7640 URL: https://issues.apache.org/jira/browse/GROOVY-7640 Project: Groovy Issue Type: Bug Components: ast builder Affects Versions: 2.4.5 Reporter: Marc Bogaerts Priority: Minor
If one annotates a groovy class with @Builder and that class extends from another class, then the generated builder does not support setting the parent class properties. This is especially problematic when mixin groovy builders in java code. e.g. the following class shows what will and will not compile {code:java} // Animal.groovy import groovy.transform.builder.Builder import groovy.transform.builder.SimpleStrategy @Builder(builderStrategy = SimpleStrategy) class Animal { String color int legs } // Pet.groovy import groovy.transform.builder.Builder import groovy.transform.builder.SimpleStrategy @Builder(builderStrategy = SimpleStrategy) class Pet extends Animal { String name } // PetTest.java import org.junit.Test; import static org.junit.Assert.*; public class PetTest { @Test public void createPet() { // Pet pet = new Pet().setColor("white").setLegs(4).setName("Bobby"); does not compile Pet pet = (Pet) new Pet().setName("Bobby").setColor("white").setLegs(4); assertTrue(pet.getLegs() == 4); } } {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)