Currently there is only @deprecated, which warns about every usage of an element with that annotation.
The idea is to add an annotation which does apply to classes and warns about sub-classing the annotated class, but not the usage.
Use cases for this annotations is the communication of specific intents to users of the class:
- Plans to make a non-final class final.
- Anticipated changes to protected members.
- Frameworks require a class to be non-final, but sub-classing it should be avoided.
- Add an annotation
- Check for the annotation during compilation
See https://groups.google.com/d/topic/scala-internals/mvs3yQh1I_k/discussion for further discussion.