An annotation that designates that overriding a member is deprecated.
Overriding such a member in a sub-class then generates a warning.
Library authors should state the library's deprecation policy in their documentation to give developers guidance on when a method annotated with@deprecatedOverriding will befinalized.
Library authors should prepend the name of their library to the version number to help developers distinguish deprecations coming from different libraries:
class Foo { @deprecatedOverriding("this method will be made final", "FooLib 12.0") def add(x: Int, y: Int) = x + y}class Bar extends Foo // no deprecation warningclass Baz extends Foo { override def add(x: Int, y: Int) = x - y}// warning: overriding method add in class Foo is deprecated (since FooLib 12.0): this method will be made final// override def add(x: Int, y: Int) = x - y// ^the message to print during compilation if the member was overridden
a string identifying the first version in which overriding was deprecated