As a precondition to this PR, the MessageField interface was temporarily reworked to be a class outside of this repo (which was needed to introduce the default implementations for equals and hashCode, which turned out to be required).
Now in this PR we amend the code generation to take into account that MessageField is not an interface, but a class now, so that the generated code was compatible with this fact.
Note: this could likely be just a temporary measure, and MessageField would likely be reworked to be an interface again later, while providing other means of ensuring proper equality behavior, but this solution is introduced for now to solve the current needs until this is revised.
As a precondition to this PR, the
MessageField
interface was temporarily reworked to be a class outside of this repo (which was needed to introduce the default implementations forequals
andhashCode
, which turned out to be required).Now in this PR we amend the code generation to take into account that
MessageField
is not an interface, but a class now, so that the generated code was compatible with this fact.Note: this could likely be just a temporary measure, and
MessageField
would likely be reworked to be an interface again later, while providing other means of ensuring proper equality behavior, but this solution is introduced for now to solve the current needs until this is revised.