Currently, the method AbstractASTTransformation#getMemberClassValue
takes as a parameter a "default value" (parameter defaulted to null),
which is returned if the annotation instance does not provide a value
for that parameter. This means that if an annotation is declared with
a "default Foo.class", that expected default value is not taken into
account, and the value returned to AST transformations is null.

As the core structure of annotations provides for setting a default,
it is exceedingly surprising for the default not to be respected and
to have to be manually resolved by any transformation using it.

I propose that as a breaking change for 4.0, if an annotation provides
a default value and an instance of the annotation does not override
that value, then that default value should be returned by the
getMember*Value methods.

Reply via email to