Currently our style guide recommends to avoid using @Override and updates
intellij's code style to exclude it by default; I would like to propose we
change this recommendation to use it and to update intellij's style to
include it by default.

@Override is used by javac to enforce that a method is in fact overriding
from an abstract class or an interface and if this stops being true (such
as a refactor happens) then a compiler error is thrown; when we default to
excluding, it makes it harder to detect that a refactor catches all
implementations and can lead to subtle and hard to track down bugs.

This proposal is for new code and would not be to go rewrite all code at
once, but would recommend new code adopt this style, and to pull old code
forward which is related to changes being made (similar to our stance on
imports).

If people are ok with this, I will file a JIRA, update the docs, and
update intellij's formatting.

Thanks for your time!

Reply via email to