class InvalidGenericSubclass {
public static void main(String[] args) {
BaseInput, ?> input = new BaseInput<BaseInput, BaseInput.BaseOutput>() {
};
BaseInput, ?> input2 = InvalidGenericSubclass.create();
new InvalidGenericSubclass();
}
interface Input, OutputType extends Input.Output> {
interface Output, InputType extends Output> {
}
}
interface BaseInput, BaseOutputType extends BaseInput.BaseOutput> extends Input {
interface BaseOutput, BaseOutputType extends BaseOutput> extends Output {
}
}
static , BaseOutputType extends BaseInput.BaseOutput> BaseInput create() {
return null;
}
, BaseOutputType extends BaseInput.BaseOutput> InvalidGenericSubclass() {}
}