blob: b87ee1c5ee5edca725ae8164fb07245c0a932ecd [file] [log] [blame]
import com.google.auto.value.AutoValue;
import org.checkerframework.checker.calledmethods.qual.*;
import org.checkerframework.common.returnsreceiver.qual.This;
public class Inheritance {
static interface Props {
String name();
String somethingElse();
abstract class Builder<B extends Builder<B>> {
public abstract @This B name(String value);
}
}
@AutoValue
abstract static class PropHolder implements Props {
abstract int size();
@Override
public String somethingElse() {
return "hi";
}
static Builder builder() {
return new AutoValue_Inheritance_PropHolder.Builder();
}
@AutoValue.Builder
public abstract static class Builder extends Props.Builder<Builder> {
public abstract Builder size(int value);
public abstract PropHolder build();
}
}
static void correct() {
PropHolder.Builder b = PropHolder.builder();
b.name("Manu").size(1).build();
}
static void wrong() {
PropHolder.Builder b = PropHolder.builder();
// :: error: finalizer.invocation
b.size(1).build();
}
}