diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2010-08-03 20:03:08 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2010-08-03 20:03:08 +0000 |
commit | db99926628a2b636a548049c1204fee78c77b9bb (patch) | |
tree | 88122a98135c3c2165ad6364819a66854d61ec16 /src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
parent | 958fb1c6f48aeecf5fc56ad9debbfad8d6d0fc66 (diff) | |
download | scala-db99926628a2b636a548049c1204fee78c77b9bb.tar.gz scala-db99926628a2b636a548049c1204fee78c77b9bb.tar.bz2 scala-db99926628a2b636a548049c1204fee78c77b9bb.zip |
added @deprecatedName annotation, allowing to d...
added @deprecatedName annotation, allowing to deprecate parameter names.
review by prokopec.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 043c41fc10..770daccef0 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -1758,6 +1758,16 @@ trait Typers { self: Analyzer => meth.paramss.exists(ps => ps.exists(_.hasFlag(DEFAULTPARAM)) && isRepeatedParamType(ps.last.tpe))) error(meth.pos, "a parameter section with a `*'-parameter is not allowed to have default arguments") + if (phase.id <= currentRun.typerPhase.id) { + val allParams = meth.paramss.flatten + for (p <- allParams) { + deprecatedName(p).foreach(n => { + if (allParams.exists(p1 => p1.name == n || (p != p1 && deprecatedName(p1) == Some(n)))) + error(p.pos, "deprecated parameter name "+ n +" has to be distinct from any other parameter name (deprecated or not).") + }) + } + } + checkMethodStructuralCompatible(meth) treeCopy.DefDef(ddef, typedMods, ddef.name, tparams1, vparamss1, tpt1, rhs1) setType NoType |