gabrielittner/auto-value-with

0.1.2's wither implementations return wrong AutoValue class for Nested classes

Closed this issue · 0 comments

If I have a class B nested in A

public class A {
    @AutoValue
    public abstract class B {
        public abstract int xyz();
        public abstract B withXyz(int xyz);
    }
}

the generated class from auto-value-with extension is as follows

abstract class $$AutoValue_A_B extends $$$AutoValue_A_B {
  $$AutoValue_A_B(int xyz) {
    super(xyz);
  }

  @Override
  public final AutoValue_B withXyz(int xyz) {
    return new AutoValue_B(xyz);
  }
}

Notice that the return type of wither implementations is AutoValue_B instead of AutoValue_A_B