diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-04-15 19:00:29 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-04-15 19:00:29 -0700 |
commit | e337bfca56572b88dbc75a0e5d20f862be5f4ce0 (patch) | |
tree | e78dfa660dc4ddfebc0a7e9755fbf77530b067fc /src | |
parent | 835fbfb152f8f806639473a96883e002bd8706c4 (diff) | |
parent | 660c8fd4c89c4f7121d131138c5f9fceaefa4992 (diff) | |
download | scala-e337bfca56572b88dbc75a0e5d20f862be5f4ce0.tar.gz scala-e337bfca56572b88dbc75a0e5d20f862be5f4ce0.tar.bz2 scala-e337bfca56572b88dbc75a0e5d20f862be5f4ce0.zip |
Merge pull request #2336 from retronym/topic/deprecated-inheritance-tweak
SI-7312 @deprecatedInheritance now ignores same-file subclasses
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 6 | ||||
-rw-r--r-- | src/library/scala/deprecatedInheritance.scala | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index a75061c492..a7b68ee6f8 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -1737,14 +1737,16 @@ trait Typers extends Adaptations with Tags { if (psym.isFinal) pending += ParentFinalInheritanceError(parent, psym) - if (psym.hasDeprecatedInheritanceAnnotation) { + val sameSourceFile = context.unit.source.file == psym.sourceFile + + if (psym.hasDeprecatedInheritanceAnnotation && !sameSourceFile) { val suffix = psym.deprecatedInheritanceMessage map (": " + _) getOrElse "" val msg = s"inheritance from ${psym.fullLocationString} is deprecated$suffix" unit.deprecationWarning(parent.pos, msg) } if (psym.isSealed && !phase.erasedTypes) - if (context.unit.source.file == psym.sourceFile) + if (sameSourceFile) psym addChild context.owner else pending += ParentSealedInheritanceError(parent, psym) diff --git a/src/library/scala/deprecatedInheritance.scala b/src/library/scala/deprecatedInheritance.scala index 70065560b1..7d20219d4d 100644 --- a/src/library/scala/deprecatedInheritance.scala +++ b/src/library/scala/deprecatedInheritance.scala @@ -11,7 +11,8 @@ package scala /** 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. + * Sub-classing such a class then generates a warning. No warnings are generated if the + * subclass is in the same compilation unit. * * @param message the message to print during compilation if the class was sub-classed * @param since a string identifying the first version in which inheritance was deprecated |