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

Comments

Projects
None yet
2 participants
@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

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link

scabug commented Jul 31, 2012

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

@scabug

This comment has been minimized.

Copy link

scabug commented Sep 17, 2012

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

@scabug scabug closed this Sep 17, 2012

@scabug

This comment has been minimized.

Copy link

scabug commented Oct 3, 2012

@scabug

This comment has been minimized.

Copy link

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