aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-11-02 18:55:02 +0100
committerMartin Odersky <odersky@gmail.com>2015-11-05 13:57:37 +0100
commit4850629d244156d96a2a1bad231cddc0084d0d31 (patch)
treed12a4109281b681f42c7d144205c8d5e70bed59f
parenta0fbe09d945b6b6ef1279e7d6f828bdd3b93cce2 (diff)
downloaddotty-4850629d244156d96a2a1bad231cddc0084d0d31.tar.gz
dotty-4850629d244156d96a2a1bad231cddc0084d0d31.tar.bz2
dotty-4850629d244156d96a2a1bad231cddc0084d0d31.zip
Emit a migration warning in Parser when hitting a Scala2 feature.
-rw-r--r--src/dotty/tools/dotc/parsing/Parsers.scala13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/parsing/Parsers.scala b/src/dotty/tools/dotc/parsing/Parsers.scala
index 63d33e4e1..8d230d321 100644
--- a/src/dotty/tools/dotc/parsing/Parsers.scala
+++ b/src/dotty/tools/dotc/parsing/Parsers.scala
@@ -259,7 +259,11 @@ object Parsers {
}
/** Cannot use ctx.featureEnabled because accessing the context would force too much */
- private def scala2mode = ctx.settings.language.value.contains(nme.Scala2.toString)
+ private def scala2mode(msg: => String, pos: Position = Position(in.offset)) = {
+ val s2 = ctx.settings.language.value.contains(nme.Scala2.toString)
+ if (s2) ctx.migrationWarning(msg, source atPos pos)
+ s2
+ }
/* ---------- TREE CONSTRUCTION ------------------------------------------- */
@@ -1726,12 +1730,13 @@ object Parsers {
* DefSig ::= id [DefTypeParamClause] ParamClauses
*/
def defDefOrDcl(mods: Modifiers): Tree = atPos(tokenRange) {
- def atScala2Brace = scala2mode && in.token == LBRACE
+ def scala2ProcedureSyntax =
+ scala2mode("Procedure syntax no longer supported; `=' should be inserted here")
if (in.token == THIS) {
in.nextToken()
val vparamss = paramClauses(nme.CONSTRUCTOR)
val rhs = {
- if (!atScala2Brace) accept(EQUALS)
+ if (!scala2ProcedureSyntax || in.token != LBRACE) accept(EQUALS)
atPos(in.offset) { constrExpr() }
}
makeConstructor(Nil, vparamss, rhs).withMods(mods)
@@ -1748,7 +1753,7 @@ object Parsers {
}
else if (!tpt.isEmpty)
EmptyTree
- else if (scala2mode) {
+ else if (scala2ProcedureSyntax) {
tpt = scalaUnit
if (in.token == LBRACE) expr()
else EmptyTree