diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2012-09-10 23:25:40 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2012-09-11 00:19:05 +0200 |
commit | 028de5d78225d3eb4d41d87bdbe56b7631ef76d1 (patch) | |
tree | a6d847d01d41347c2af488d3b4f5564415a2ab2e /src/compiler | |
parent | c78fe024711925c40f9fc15221ea04a6f99a5691 (diff) | |
download | scala-028de5d78225d3eb4d41d87bdbe56b7631ef76d1.tar.gz scala-028de5d78225d3eb4d41d87bdbe56b7631ef76d1.tar.bz2 scala-028de5d78225d3eb4d41d87bdbe56b7631ef76d1.zip |
Rescues @deprecated{Inheritance, Overriding}
While they ought to be generalized to aribirary modifier
changes before being offered in the standard library, the
opportunity to use them in 2.10 is too important to pass up.
So for now, they're private[scala].
En route:
- made the error messages more concise
- fix positioning of inheritance error
- improve test coverage
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | 6 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 9 |
2 files changed, 5 insertions, 10 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala index 919250c562..b9ff04c9df 100644 --- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala +++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala @@ -512,10 +512,8 @@ abstract class RefChecks extends InfoTransform with reflect.internal.transform.R def checkOverrideDeprecated() { if (other.hasDeprecatedOverridingAnnotation) { - val msg = - member.toString + member.locationString + " overrides " + other.toString + other.locationString + - ", but overriding this member is deprecated" + - other.deprecatedOverridingMessage.map(": " + _).getOrElse(".") + val suffix = other.deprecatedOverridingMessage map (": " + _) getOrElse "" + val msg = s"overriding ${other.fullLocationString} is deprecated$suffix" unit.deprecationWarning(member.pos, msg) } } diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index df97e451d1..3913c4f815 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -1578,12 +1578,9 @@ trait Typers extends Modes with Adaptations with Tags { pending += ParentFinalInheritanceError(parent, psym) if (psym.hasDeprecatedInheritanceAnnotation) { - val sym = selfType.typeSymbol - val msg = - sym.toString + sym.locationString + " inherits from " + psym.toString + psym.locationString + - ", but inheriting from that class is deprecated" + - psym.deprecatedInheritanceMessage.map(": " + _).getOrElse(".") - unit.deprecationWarning(sym.pos, msg) + 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) |