deprecatedInheritance
An annotation that designates that inheriting from a class is deprecated.
This is usually done to warn about a non-final class being made final in a future version. Sub-classing such a class then generates a warning.
No warnings are generated if the subclass is in the same compilation unit.
Library authors should state the library's deprecation policy in their documentation to give
developers guidance on when a type annotated with @deprecatedInheritance
will be final
ized.
Library authors should prepend the name of their library to the version number to help developers distinguish deprecations coming from different libraries:
@deprecatedInheritance("this class will be made final", "FooLib 12.0")
class Foo
val foo = new Foo // no deprecation warning
class Bar extends Foo
// warning: inheritance from class Foo is deprecated (since FooLib 12.0): this class will be made final
// class Bar extends Foo
// ^
- Value parameters:
- message
the message to print during compilation if the class was sub-classed
- since
a string identifying the first version in which inheritance was deprecated
- See also:
- Source:
- deprecatedInheritance.scala