Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Annotation to warn/deprecate about subclassing a class #6162

Closed
scabug opened this issue Jul 30, 2012 · 5 comments
Closed

Annotation to warn/deprecate about subclassing a class #6162

scabug opened this issue Jul 30, 2012 · 5 comments

Comments

@scabug
Copy link

scabug commented Jul 30, 2012

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.

Todo:

  • Add an annotation
  • Check for the annotation during compilation
  • Tests

See https://groups.google.com/d/topic/scala-internals/mvs3yQh1I_k/discussion for further discussion.

@scabug
Copy link
Author

scabug commented Jul 30, 2012

Imported From: https://issues.scala-lang.org/browse/SI-6162?orig=1
Reporter: @soc
Affected Versions: 2.10.0
Other Milestones: 2.10.0

@scabug
Copy link
Author

scabug commented Jul 31, 2012

@soc said:
Paul wants to have the same functionality for overriding members.

@scabug
Copy link
Author

scabug commented Sep 17, 2012

@soc said:
Merged in scala/scala@4f696fe.

@scabug scabug closed this as completed Sep 17, 2012
@scabug
Copy link
Author

scabug commented Oct 3, 2012

@adriaanm said:
scala/scala#1284

@scabug
Copy link
Author

scabug commented Oct 30, 2016

@soc said:
Annotations were made public in scala/scala#4827.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants