[sealed] @SafeVarargs on the methods of sealed class/interface
Brian Goetz
brian.goetz at oracle.com
Sun Oct 25 21:22:03 UTC 2020
I think this is a great idea for IDEs to have as an inspection :)
Inheritance of annotations, or anything that even smells like it, is a
siren song (e.g., what happens when something is inherited from two
interfaces, differently annotated?) And further, I cannot recall a
single tweak to annotations that has not given rise to "but you do X
here, surely you have to do Y there." So it's a double whammy -- we
don't get a good return, plus we encourage more demand for doing more of
the same kind of bad investment.
To me, the return on this investment _in the language_ seems
dramatically negative. (But for IDEs, it might be great.)
On 10/24/2020 9:29 PM, Tagir Valeev wrote:
> Hello!
>
> As suggested by Lukas Eder on Twitter (
> https://mobile.twitter.com/lukaseder/status/1318890756250193920 ), it
> looks a good idea to allow SafeVarargs on the methods of sealed
> classes/interfaces. The rules could be the following:
> Check all the permitted subtypes. For every permitted subtype:
> - If it has this method overridden/implemented, then it must also be
> annotated as SafeVarargs
> - Otherwise, if the subtype is non-sealed, it's an error
> - Otherwise, the procedure is repeated for all the permitted subtypes
> of this subtype.
>
> What do you think?
>
> With best regards,
> Tagir Valeev.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/amber-spec-experts/attachments/20201025/a6caa0d7/attachment.htm>
More information about the amber-spec-experts
mailing list