Lombok doesn't automatically generate calls to super, because there
are many situations where that would be entirely the wrong thing to
do.
public class CommonMarker {}
public @EqualsAndHashCode class ActualClass extends CommonMarker {
}
In the above scenario, calling super.hashCode and super.equals() would
in fact turn the generated hashCode and equals into having the same
behaviour as Object's own version (i.e. equal if they are the exact
same instance, otherwise, not equal), except they'd be slower.
Even if the superclass DOES have an implementation for equals and
hashCode, many such implementations aren't written correctly, and a
supercall will fail. Therefore, you are required to manually confirm
the right thing to do and add a callSuper= value.
The concept of going for sane defaults is fine and very much something
lombok is designed around, but it stops being a useful rule of thumb
if, in the few cases where the default isn't what you wanted, things
blow up in your face and/or shoot your foot off. This is such a case.
It would be entirely non-obvious and could result in many hours of bug
hunting when lombok's generated equals and hashCode methods
mysteriously appear but seem to not be doing their job right. We could
and probably should add a link to an html page with more information
about the vagaries of equals and hashCode to that warning someday.
We were going to add callSuper to data itself, but that would add a
lot more interdependencies; right now Data knows about
EqualsAndHashCode and will simply not generate equals and hashCode
implementations if it sees that annotation (knowing that it will end
up generating them instead). EqualsAndHashCode is oblivious to the
existence of Data. By adding callSuper, we'd have to make
EqualsAndHashCode and ToString aware of Data and copy its callSuper
value if the user hasn't specified one for @EqualsAndHashCode or
@ToString. Though, in retrospect, that may be the right idea anyway. I
filed an issue to do just that:
http://code.google.com/p/projectlombok/issues/detail?id=19