You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@vlsi Thanks for this. I'm open to having Generator become an interface. My main concern is avoiding breaking existing subclasses of Generator, as you might expect. I'll noodle on this a bit.
My main concern is avoiding breaking existing subclasses of
I see.
There are two options at least:
Just do it :) junit-quickcheck is 0.x, so slight glitches in the backward compatibility are expected by the consumers
Add super interface for those who want to implement a generator without having to extend a base class (and use it internally instead of the current Generator)
Currently, Generator is a class, and it makes it complicated to implement generators.
For instance, I already have a generator, however, it extends its own class for simplified API.
Base class: https://github.com/apache/calcite/blob/763ec429c951acd5fa251c5d4a2b7780fbf648d4/core/src/test/java/org/apache/calcite/rex/RexProgramBuilderBase.java#L44
Uses in the generator: https://github.com/apache/calcite/blob/763ec429c951acd5fa251c5d4a2b7780fbf648d4/core/src/test/java/org/apache/calcite/test/fuzzer/RexFuzzer.java#L184
It does not hurt much, however, at this point it looks like all the Generator / Shrinker behavior can be implemented with
interface default
methods.The text was updated successfully, but these errors were encountered: