diff options
author | Paul Phillips <paulp@improving.org> | 2011-08-10 00:55:15 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-08-10 00:55:15 +0000 |
commit | 879e5af47db2ae6807aef26dd786e6ea920ac554 (patch) | |
tree | 7aecb05e2c9361689c16dec2a2c8473af6d0b4fd | |
parent | e3e64e43659f53dd8f9cd5837f78a7e4378dc4c4 (diff) | |
download | scala-879e5af47db2ae6807aef26dd786e6ea920ac554.tar.gz scala-879e5af47db2ae6807aef26dd786e6ea920ac554.tar.bz2 scala-879e5af47db2ae6807aef26dd786e6ea920ac554.zip |
Reversed the values of "is" and "is not" in rec...
Reversed the values of "is" and "is not" in recent for comprehension
deprecation.
DO NOT BLOW HATCH
REPEAT
DO NOT BLOW HATCH
"Roger! Hatch blown."
Events reveal it was all baby, no bathwater. It turns out that the
specification is merely a document, not infallible holy writ as we
had all previously believed. So it is not the ABSENCE of val in a for
comprehension assignment which is deprecated, it is the PRESENCE of val.
Summarizing again, more accurately perhaps:
for (x <- 1 to 5 ; y = x) yield x+y // THAT's the one
for (val x <- 1 to 5 ; y = x) yield x+y // fail
for (val x <- 1 to 5 ; val y = x) yield x+y // fail
for (x <- 1 to 5 ; val y = x) yield x+y // deprecated
No review.
36 files changed, 116 insertions, 103 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala index 5cbe83f274..b06ecdb859 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala @@ -1640,12 +1640,9 @@ self => val point = in.offset val hasEq = in.token == EQUALS - if (hasVal && !hasEq) - syntaxError(in.offset, "val in for comprehension must be followed by assignment") - if (!hasVal && hasEq) { - deprecationWarning(in.lastOffset, "for comprehension assignment without a `val' declaration is deprecated.") - // not yet, deprecated in 2.10.0. - // syntaxError(in.offset, "assignment in for comprehension must be preceded by `val`") + if (hasVal) { + if (hasEq) deprecationWarning(in.offset, "val keyword in for comprehension is deprecated") + else syntaxError(in.offset, "val in for comprehension must be followed by assignment") } if (hasEq && eqOK) in.nextToken() diff --git a/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala b/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala index e3af9f52ae..724b30ef44 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala @@ -318,7 +318,7 @@ abstract class TreeBuilder { * * 3. * - * for (P_1 <- G_1; val P_2 <- G_2; ...) ... + * for (P_1 <- G_1; P_2 <- G_2; ...) ... * ==> * G_1.flatMap (P_1 => for (P_2 <- G_2; ...) ...) * @@ -330,7 +330,7 @@ abstract class TreeBuilder { * * 5. For N < MaxTupleArity: * - * for (P_1 <- G; val P_2 = E_2; val P_N = E_N; ...) + * for (P_1 <- G; P_2 = E_2; val P_N = E_N; ...) * ==> * for (TupleN(P_1, P_2, ... P_N) <- * for (x_1 @ P_1 <- G) yield { diff --git a/src/compiler/scala/tools/nsc/backend/icode/Members.scala b/src/compiler/scala/tools/nsc/backend/icode/Members.scala index 4e02371a7e..5aa76fad83 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/Members.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/Members.scala @@ -224,7 +224,7 @@ trait Members { self: ICodes => val nextBlock: mutable.Map[BasicBlock, BasicBlock] = mutable.HashMap.empty for (b <- code.blocks.toList if b.successors.length == 1; - val succ = b.successors.head; + succ = b.successors.head; if succ ne b; if succ.predecessors.length == 1; if succ.predecessors.head eq b; diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala index a82e81b858..c656219dc8 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/Liveness.scala @@ -44,7 +44,7 @@ abstract class Liveness { gen.clear() kill.clear() - for (b <- m.code.blocks; val (g, k) = genAndKill(b)) { + for (b <- m.code.blocks; (g, k) = genAndKill(b)) { gen += (b -> g) kill += (b -> k) } diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/ReachingDefinitions.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/ReachingDefinitions.scala index 09718947f4..d9e0243c16 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/analysis/ReachingDefinitions.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/ReachingDefinitions.scala @@ -81,7 +81,7 @@ abstract class ReachingDefinitions { drops.clear() outStack.clear() - for (b <- m.code.blocks.toList; val (g, k) = genAndKill(b); val (d, st) = dropsAndGen(b)) { + for (b <- m.code.blocks.toList; (g, k) = genAndKill(b); (d, st) = dropsAndGen(b)) { gen += (b -> g) kill += (b -> k) drops += (b -> d) diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala index c0a9192c86..ab42f4176c 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala @@ -421,11 +421,15 @@ abstract class GenJVM extends SubComponent with GenJVMUtil with GenAndroid with c.cunit.source.toString) var fieldList = List[String]() - for (f <- clasz.fields if f.symbol.hasGetter; - val g = f.symbol.getter(c.symbol); - val s = f.symbol.setter(c.symbol); - if g.isPublic && !(f.symbol.name startsWith "$")) // inserting $outer breaks the bean + for { + f <- clasz.fields + if f.symbol.hasGetter + g = f.symbol.getter(c.symbol) + s = f.symbol.setter(c.symbol) + if g.isPublic && !(f.symbol.name startsWith "$") // inserting $outer breaks the bean + } { fieldList = javaName(f.symbol) :: javaName(g) :: (if (s != NoSymbol) javaName(s) else null) :: fieldList + } val methodList = for (m <- clasz.methods if !m.symbol.isConstructor && diff --git a/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala b/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala index a5361c056e..24e0dba271 100644 --- a/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala +++ b/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala @@ -330,7 +330,7 @@ class RefinedBuildManager(val settings: Settings) extends Changes with BuildMana /** Update the map of definitions per source file */ private def updateDefinitions(files: Set[AbstractFile]) { - for (src <- files; val localDefs = compiler.dependencyAnalysis.definitions(src)) { + for (src <- files; localDefs = compiler.dependencyAnalysis.definitions(src)) { definitions(src) = (localDefs map (s => { this.classes += s.fullName -> src SymWithHistory( diff --git a/src/compiler/scala/tools/nsc/interpreter/IMain.scala b/src/compiler/scala/tools/nsc/interpreter/IMain.scala index b516e137e8..0a5104f824 100644 --- a/src/compiler/scala/tools/nsc/interpreter/IMain.scala +++ b/src/compiler/scala/tools/nsc/interpreter/IMain.scala @@ -1064,13 +1064,12 @@ class IMain(initialSettings: Settings, protected val out: JPrintWriter) extends for { tpe <- typeOfTerm(id) clazz <- classOfTerm(id) - val staticSym = tpe.typeSymbol + staticSym = tpe.typeSymbol runtimeSym <- safeClass(clazz.getName) if runtimeSym != staticSym if runtimeSym isSubClass staticSym - } yield { - runtimeSym.info } + yield runtimeSym.info } object replTokens extends { diff --git a/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala b/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala index 49b67bb29f..c3fc2732a9 100644 --- a/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala +++ b/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala @@ -251,7 +251,7 @@ abstract class SymbolLoaders { } } // enter decls of parent classes - for (pt <- module.info.parents; val p = pt.typeSymbol) { + for (pt <- module.info.parents; p = pt.typeSymbol) { if (p != definitions.ObjectClass && p != definitions.ScalaObjectClass) { openPackageModule(p)(packageClass) } diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala index f121571d17..47fadd9fd5 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala @@ -417,7 +417,7 @@ abstract class ClassfileParser { val parts = name.decode.toString.split(Array('.', '$')) var sym: Symbol = definitions.RootClass atPhase(currentRun.flattenPhase.prev) { - for (part0 <- parts; if !(part0 == ""); val part = newTermName(part0)) { + for (part0 <- parts; if !(part0 == ""); part = newTermName(part0)) { val sym1 = atPhase(currentRun.icodePhase) { sym.linkedClassOfClass.info sym.info.decl(part.encode) diff --git a/src/compiler/scala/tools/nsc/transform/Constructors.scala b/src/compiler/scala/tools/nsc/transform/Constructors.scala index 98d6286d02..e29f085de7 100644 --- a/src/compiler/scala/tools/nsc/transform/Constructors.scala +++ b/src/compiler/scala/tools/nsc/transform/Constructors.scala @@ -310,7 +310,7 @@ abstract class Constructors extends Transform with ast.TreeDSL { } log("merging: " + originalStats.mkString("\n") + "\nwith\n" + specializedStats.mkString("\n")) - val res = for (s <- originalStats; val stat = s.duplicate) yield { + val res = for (s <- originalStats; stat = s.duplicate) yield { log("merge: looking at " + stat) val stat1 = stat match { case Assign(sel @ Select(This(_), field), _) => diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala index 81d7e8b373..d43dfdd3d9 100644 --- a/src/compiler/scala/tools/nsc/transform/Mixin.scala +++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala @@ -856,7 +856,7 @@ abstract class Mixin extends InfoTransform with ast.TreeDSL { */ def addCheckedGetters(clazz: Symbol, stats: List[Tree]): List[Tree] = { - val stats1 = for (stat <- stats; val sym = stat.symbol) yield stat match { + val stats1 = for (stat <- stats; sym = stat.symbol) yield stat match { case DefDef(mods, name, tp, vp, tpt, rhs) if sym.isLazy && rhs != EmptyTree && !clazz.isImplClass => assert(fieldOffset.isDefinedAt(sym)) diff --git a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala index f4a7ad678a..478e20dde8 100644 --- a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala +++ b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala @@ -1512,7 +1512,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { val (oldtparams, newtparams) = reskolemize(tparams) // create fresh symbols for value parameters to hold the skolem types - val vparamss1 = List(for (vdef <- vparamss.head; val param = vdef.symbol) yield { + val vparamss1 = List(for (vdef <- vparamss.head; param = vdef.symbol) yield { ValDef(param.cloneSymbol(symbol).setInfo(param.info.substSym(oldtparams, newtparams))) }) @@ -1551,20 +1551,21 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { if (info(m).target.hasAccessorFlag) hasSpecializedFields = true if (m.isClassConstructor) { val origParamss = parameters(info(m).target) - - val vparams = - for ((tp, sym) <- m.info.paramTypes zip origParamss(0)) - yield m.newValue(sym.pos, specializedName(sym, typeEnv(cls))) - .setInfo(tp) - .setFlag(sym.flags) - + val vparams = ( + for ((tp, sym) <- m.info.paramTypes zip origParamss(0)) yield ( + m.newValue(sym.pos, specializedName(sym, typeEnv(cls))) + .setInfo(tp) + .setFlag(sym.flags) + ) + ) // param accessors for private members (the others are inherited from the generic class) - if (m.isPrimaryConstructor) - for (param <- vparams if cls.info.nonPrivateMember(param.name) == NoSymbol; - val acc = param.cloneSymbol(cls).setFlag(PARAMACCESSOR | PRIVATE)) { + if (m.isPrimaryConstructor) { + for (param <- vparams ; if cls.info.nonPrivateMember(param.name) == NoSymbol) { + val acc = param.cloneSymbol(cls).setFlag(PARAMACCESSOR | PRIVATE) cls.info.decls.enter(acc) mbrs += ValDef(acc, EmptyTree).setType(NoType).setPos(m.pos) } + } // ctor mbrs += atPos(m.pos)(DefDef(m, Modifiers(m.flags), List(vparams) map (_ map ValDef), EmptyTree)) diff --git a/src/continuations/plugin/scala/tools/selectivecps/SelectiveANFTransform.scala b/src/continuations/plugin/scala/tools/selectivecps/SelectiveANFTransform.scala index 5f57b0ac10..001a1b4b62 100644 --- a/src/continuations/plugin/scala/tools/selectivecps/SelectiveANFTransform.scala +++ b/src/continuations/plugin/scala/tools/selectivecps/SelectiveANFTransform.scala @@ -78,7 +78,7 @@ abstract class SelectiveANFTransform extends PluginComponent with Transform with case Match(selector, cases) if (ext.isDefined && getAnswerTypeAnn(body.tpe).isEmpty) => val cases1 = for { cd @ CaseDef(pat, guard, caseBody) <- cases - val caseBody1 = transExpr(body, None, ext) + caseBody1 = transExpr(body, None, ext) } yield { treeCopy.CaseDef(cd, transform(pat), transform(guard), caseBody1) } @@ -201,7 +201,7 @@ abstract class SelectiveANFTransform extends PluginComponent with Transform with val caseVals = for { cd @ CaseDef(pat, guard, body) <- cases - val bodyVal = transExpr(body, cpsA2, cpsR2) + bodyVal = transExpr(body, cpsA2, cpsR2) } yield { treeCopy.CaseDef(cd, transform(pat), transform(guard), bodyVal) } @@ -233,7 +233,7 @@ abstract class SelectiveANFTransform extends PluginComponent with Transform with val catchVals = for { cd @ CaseDef(pat, guard, body) <- catches - val bodyVal = transExpr(body, cpsA, cpsR) + bodyVal = transExpr(body, cpsA, cpsR) } yield { treeCopy.CaseDef(cd, transform(pat), transform(guard), bodyVal) } diff --git a/src/library/scala/util/automata/WordBerrySethi.scala b/src/library/scala/util/automata/WordBerrySethi.scala index b36685b4d9..84b78d8dd8 100644 --- a/src/library/scala/util/automata/WordBerrySethi.scala +++ b/src/library/scala/util/automata/WordBerrySethi.scala @@ -116,7 +116,7 @@ abstract class WordBerrySethi extends BaseBerrySethi { } protected def collectTransitions(): Unit = // make transitions - for (j <- 0 until pos ; val fol = follow(j) ; k <- fol) { + for (j <- 0 until pos ; fol = follow(j) ; k <- fol) { if (pos == k) finals = finals.updated(j, finalTag) else makeTransition(j, k, labelAt(k)) } diff --git a/src/msil/ch/epfl/lamp/compiler/msil/emit/MultipleFilesILPrinterVisitor.scala b/src/msil/ch/epfl/lamp/compiler/msil/emit/MultipleFilesILPrinterVisitor.scala index 43333ef825..55c52109b6 100644 --- a/src/msil/ch/epfl/lamp/compiler/msil/emit/MultipleFilesILPrinterVisitor.scala +++ b/src/msil/ch/epfl/lamp/compiler/msil/emit/MultipleFilesILPrinterVisitor.scala @@ -43,12 +43,12 @@ final class MultipleFilesILPrinterVisitor(destPath: String, sourceFilesPath: Str // print each module var m: Array[Module] = assemblyBuilder.GetModules() nomembers = true - for(val i <- 0 until m.length) { + for(i <- 0 until m.length) { print(m(i).asInstanceOf[ModuleBuilder]) } nomembers = false - for(val i <- 0 until m.length) { + for(i <- 0 until m.length) { print(m(i).asInstanceOf[ModuleBuilder]) } ILPrinterVisitor.currAssembly = null @@ -72,7 +72,7 @@ final class MultipleFilesILPrinterVisitor(destPath: String, sourceFilesPath: Str // "Types" contain all the classes var t: Array[Type] = module.GetTypes() - for(val i <- 0 until t.length) { + for(i <- 0 until t.length) { val tBuilder = t(i).asInstanceOf[TypeBuilder] val sourceFilename = tBuilder.sourceFilename val sourceFilepath = new File(tBuilder.sourceFilepath).getCanonicalPath @@ -124,7 +124,7 @@ final class MultipleFilesILPrinterVisitor(destPath: String, sourceFilesPath: Str printAttributes(module) } - for(val i <- 0 until m.length) { + for(i <- 0 until m.length) { print(m(i).asInstanceOf[MethodBuilder]) } diff --git a/src/msil/ch/epfl/lamp/compiler/msil/emit/SingleFileILPrinterVisitor.scala b/src/msil/ch/epfl/lamp/compiler/msil/emit/SingleFileILPrinterVisitor.scala index 0f2e7d7ecf..5d59d4d25a 100644 --- a/src/msil/ch/epfl/lamp/compiler/msil/emit/SingleFileILPrinterVisitor.scala +++ b/src/msil/ch/epfl/lamp/compiler/msil/emit/SingleFileILPrinterVisitor.scala @@ -50,12 +50,12 @@ final class SingleFileILPrinterVisitor(_fileName: String) extends ILPrinterVisit // print each module var m: Array[Module] = assemblyBuilder.GetModules() nomembers = true - for(val i <- 0 until m.length) { + for(i <- 0 until m.length) { print(m(i).asInstanceOf[ModuleBuilder]) } nomembers = false - for(val i <- 0 until m.length) { + for(i <- 0 until m.length) { print(m(i).asInstanceOf[ModuleBuilder]) } // close out file @@ -79,12 +79,12 @@ final class SingleFileILPrinterVisitor(_fileName: String) extends ILPrinterVisit module.CreateGlobalFunctions() var m: Array[MethodInfo] = module.GetMethods() - for(val i <- 0 until m.length) { + for(i <- 0 until m.length) { print(m(i).asInstanceOf[MethodBuilder]) } var t: Array[Type] = module.GetTypes() - for(val i <- 0 until t.length) { + for(i <- 0 until t.length) { print(t(i).asInstanceOf[TypeBuilder]) } currentModule = null diff --git a/src/msil/ch/epfl/lamp/compiler/msil/emit/TypeBuilder.scala b/src/msil/ch/epfl/lamp/compiler/msil/emit/TypeBuilder.scala index 5126a0c34d..57dc883898 100644 --- a/src/msil/ch/epfl/lamp/compiler/msil/emit/TypeBuilder.scala +++ b/src/msil/ch/epfl/lamp/compiler/msil/emit/TypeBuilder.scala @@ -222,7 +222,7 @@ class TypeBuilder (module: Module, attributes: Int, fullName: String, baseType: object TypeBuilder { def types2String(types: Array[Type]): String = { var s = new StringBuffer("(") - for(val i <- 0 until types.length) { + for(i <- 0 until types.length) { if (i > 0) s.append(", ") s.append(types(i)) } @@ -239,7 +239,7 @@ object TypeBuilder { val p2 = m2.GetParameters() if (p1.length != p2.length) return false - for(val i <- 0 until p1.length) + for(i <- 0 until p1.length) if (p1(i).ParameterType != p2(i).ParameterType) return false return true @@ -252,7 +252,7 @@ object TypeBuilder { val p2 = c2.GetParameters() if (p1.length != p2.length) return false - for(val i <- 0 until p1.length) + for(i <- 0 until p1.length) if (p1(i).ParameterType != p2(i).ParameterType) return false return true diff --git a/src/scalacheck/org/scalacheck/Arbitrary.scala b/src/scalacheck/org/scalacheck/Arbitrary.scala index 608b3b9fac..91d56b0aec 100644 --- a/src/scalacheck/org/scalacheck/Arbitrary.scala +++ b/src/scalacheck/org/scalacheck/Arbitrary.scala @@ -143,7 +143,7 @@ object Arbitrary { /** Arbitrary instance of Date */ implicit lazy val arbDate: Arbitrary[Date] = Arbitrary(for { l <- arbitrary[Long] - val d = new Date + d = new Date } yield new Date(d.getTime + l)) /** Arbitrary instance of Throwable */ diff --git a/src/scalacheck/org/scalacheck/Gen.scala b/src/scalacheck/org/scalacheck/Gen.scala index f1bf3c87de..a253b040cd 100644 --- a/src/scalacheck/org/scalacheck/Gen.scala +++ b/src/scalacheck/org/scalacheck/Gen.scala @@ -399,7 +399,7 @@ object Gen { /** A generator that picks a given number of elements from a list, randomly */ def pick[T](n: Int, g1: Gen[T], g2: Gen[T], gs: Gen[T]*): Gen[Seq[T]] = for { is <- pick(n, 0 until (gs.size+2)) - val allGs = gs ++ (g1::g2::Nil) + allGs = gs ++ (g1::g2::Nil) xs <- sequence[List,T](is.toList.map(allGs(_))) } yield xs diff --git a/src/scalacheck/org/scalacheck/Pretty.scala b/src/scalacheck/org/scalacheck/Pretty.scala index 9e215c4cb7..f59ac315c7 100644 --- a/src/scalacheck/org/scalacheck/Pretty.scala +++ b/src/scalacheck/org/scalacheck/Pretty.scala @@ -86,7 +86,7 @@ object Pretty { "> Collected test data: " / { for { (xs,r) <- fm.getRatios - val ys = xs - () + ys = xs - () if !ys.isEmpty } yield round(r*100)+"% " + ys.mkString(", ") }.mkString("\n") diff --git a/test/files/neg/for-comprehension-old.check b/test/files/neg/for-comprehension-old.check index 783354d233..1ecaf12af4 100644 --- a/test/files/neg/for-comprehension-old.check +++ b/test/files/neg/for-comprehension-old.check @@ -1,15 +1,15 @@ -for-comprehension-old.scala:2: warning: for comprehension assignment without a `val' declaration is deprecated. - for (x <- 1 to 5 ; y = x) yield x+y // fail - ^ -for-comprehension-old.scala:4: warning: for comprehension assignment without a `val' declaration is deprecated. - for (val x <- 1 to 5 ; y = x) yield x+y // fail - ^ -for-comprehension-old.scala:7: warning: for comprehension assignment without a `val' declaration is deprecated. - for (z <- 1 to 2 ; x <- 1 to 5 ; y = x) yield x+y // fail - ^ -for-comprehension-old.scala:9: warning: for comprehension assignment without a `val' declaration is deprecated. - for (z <- 1 to 2 ; val x <- 1 to 5 ; y = x) yield x+y // fail - ^ +for-comprehension-old.scala:3: warning: val keyword in for comprehension is deprecated + for (x <- 1 to 5 ; val y = x) yield x+y // fail + ^ +for-comprehension-old.scala:5: warning: val keyword in for comprehension is deprecated + for (val x <- 1 to 5 ; val y = x) yield x+y // fail + ^ +for-comprehension-old.scala:8: warning: val keyword in for comprehension is deprecated + for (z <- 1 to 2 ; x <- 1 to 5 ; val y = x) yield x+y // fail + ^ +for-comprehension-old.scala:10: warning: val keyword in for comprehension is deprecated + for (z <- 1 to 2 ; val x <- 1 to 5 ; val y = x) yield x+y // fail + ^ for-comprehension-old.scala:4: error: val in for comprehension must be followed by assignment for (val x <- 1 to 5 ; y = x) yield x+y // fail ^ diff --git a/test/files/neg/for-comprehension-old.scala b/test/files/neg/for-comprehension-old.scala index 476e99808e..10ae363bde 100644 --- a/test/files/neg/for-comprehension-old.scala +++ b/test/files/neg/for-comprehension-old.scala @@ -1,11 +1,11 @@ class A { - for (x <- 1 to 5 ; y = x) yield x+y // fail - for (x <- 1 to 5 ; val y = x) yield x+y // ok + for (x <- 1 to 5 ; y = x) yield x+y // ok + for (x <- 1 to 5 ; val y = x) yield x+y // fail for (val x <- 1 to 5 ; y = x) yield x+y // fail for (val x <- 1 to 5 ; val y = x) yield x+y // fail - for (z <- 1 to 2 ; x <- 1 to 5 ; y = x) yield x+y // fail - for (z <- 1 to 2 ; x <- 1 to 5 ; val y = x) yield x+y // ok + for (z <- 1 to 2 ; x <- 1 to 5 ; y = x) yield x+y // ok + for (z <- 1 to 2 ; x <- 1 to 5 ; val y = x) yield x+y // fail for (z <- 1 to 2 ; val x <- 1 to 5 ; y = x) yield x+y // fail for (z <- 1 to 2 ; val x <- 1 to 5 ; val y = x) yield x+y // fail } diff --git a/test/files/neg/t4163.check b/test/files/neg/t4163.check index e94c4fae7c..47bc78d31c 100644 --- a/test/files/neg/t4163.check +++ b/test/files/neg/t4163.check @@ -1,7 +1,7 @@ t4163.scala:4: error: '<-' expected but '=' found. - val x = 3 - ^ + x = 3 + ^ t4163.scala:5: error: illegal start of simple expression - y <- 0 to 100 + y <- 0 to 100 ^ two errors found diff --git a/test/files/neg/t4163.scala b/test/files/neg/t4163.scala index bb4c65f18d..44686731d1 100644 --- a/test/files/neg/t4163.scala +++ b/test/files/neg/t4163.scala @@ -1,8 +1,8 @@ class Bug { val z = ( - for { - val x = 3 - y <- 0 to 100 - } yield y - ).toArray + for { + x = 3 + y <- 0 to 100 + } yield y + ).toArray } diff --git a/test/files/pos/bug252.scala b/test/files/pos/bug252.scala index b10811fb1f..d51b5511eb 100644 --- a/test/files/pos/bug252.scala +++ b/test/files/pos/bug252.scala @@ -12,6 +12,6 @@ abstract class Base { abstract class Derived extends Base { def f(inputs: List[tType]): Unit = { - for (t <- inputs; val m = t.module) { } + for (t <- inputs; m = t.module) { } } } diff --git a/test/files/pos/t2413/TestScalac.scala b/test/files/pos/t2413/TestScalac.scala index 0f395e6c74..098e852dd7 100644 --- a/test/files/pos/t2413/TestScalac.scala +++ b/test/files/pos/t2413/TestScalac.scala @@ -18,6 +18,6 @@ class Foo extends TestJava { val aVal = repeatParam("1","2","3") */ // THIS YIELDS TO CRASH - for (a <- 1 to 4 ; val anotherVal = repeatParam("1","2","3")) + for (a <- 1 to 4 ; anotherVal = repeatParam("1","2","3")) yield anotherVal } diff --git a/test/files/positions/Unpositioned1.scala b/test/files/positions/Unpositioned1.scala index 7fc520e93c..174db901da 100644 --- a/test/files/positions/Unpositioned1.scala +++ b/test/files/positions/Unpositioned1.scala @@ -1,3 +1,3 @@ object Unpositioned1 { - for (a <- Some("foo") ; val b = true) {} + for (a <- Some("foo") ; b = true) {} } diff --git a/test/files/res/bug831/NewScalaParserXXX.scala b/test/files/res/bug831/NewScalaParserXXX.scala index 88c81637f0..e5af487def 100644 --- a/test/files/res/bug831/NewScalaParserXXX.scala +++ b/test/files/res/bug831/NewScalaParserXXX.scala @@ -7,7 +7,7 @@ trait ScalaNodeScannerXXX { trait UnfixedImpl extends NodeImpl { def self : Unfixed; } } //def f = { Console.println("hello"); 42; } -//for (val ns <-n; val i <- 0.until(ns)) yield f; +//for (ns <-n; val i <- 0.until(ns)) yield f; trait NewScalaScannerXXX extends ScalaNodeScannerXXX { diff --git a/test/files/run/fors.scala b/test/files/run/fors.scala index c7682f563d..54afdc710b 100644 --- a/test/files/run/fors.scala +++ b/test/files/run/fors.scala @@ -76,10 +76,10 @@ object Test extends App { for {x <- it if x % 2 == 0} print(x + " "); println for (x <- it; - val y = 2 + y = 2 if x % y == 0) print(x + " "); println for {x <- it - val y = 2 + y = 2 if x % y == 0} print(x + " "); println // arrays diff --git a/test/files/run/forvaleq.scala b/test/files/run/forvaleq.scala index 40dbfd099a..8c1824a769 100644 --- a/test/files/run/forvaleq.scala +++ b/test/files/run/forvaleq.scala @@ -24,7 +24,7 @@ object Test { val input = L.range(0,20) val oddFirstTimesTwo = for {x <- input - val xf = firstDigit(x) + xf = firstDigit(x) if xf % 2 == 1} yield x*2 println(oddFirstTimesTwo) @@ -36,9 +36,9 @@ object Test { val input = L.range(0, 20) val oddFirstTimesTwo = for {x <- input - val xf = firstDigit(x) - val yf = x - firstDigit(x) / 10 - val (a, b) = (xf - yf, xf + yf) + xf = firstDigit(x) + yf = x - firstDigit(x) / 10 + (a, b) = (xf - yf, xf + yf) if xf % 2 == 1} yield a + b println(oddFirstTimesTwo) @@ -51,7 +51,7 @@ object Test { val input = L.range(0, 20).iterator val oddFirstTimesTwo = for {x <- input - val xf = firstDigit(x) + xf = firstDigit(x) if xf % 2 == 1} yield x*2 println(oddFirstTimesTwo.toList) @@ -63,7 +63,7 @@ object Test { val input = L.range(0,20) val oddFirstTimesTwo = for {x <- input - val xf = firstDigit(x) + xf = firstDigit(x) if xf % 2 == 1} yield xf*2 println(oddFirstTimesTwo) @@ -80,7 +80,7 @@ object Test { val input = L.range(0,20) for {x <- input - val xf = fdct(x) + xf = fdct(x) if xf % 2 == 1} yield xf diff --git a/test/files/run/mapConserve.scala b/test/files/run/mapConserve.scala index 176e38bed4..a285113b11 100644 --- a/test/files/run/mapConserve.scala +++ b/test/files/run/mapConserve.scala @@ -30,7 +30,7 @@ object Test { def main(args: Array[String]) { for (length <- 0 to maxListLength; bitmap <- 0 until (1 << length); - val data = List.range(0, length) map { x: Int => + data = List.range(0, length) map { x: Int => if ((bitmap & (1 << x)) != 0) BigInt(x+16) else BigInt(x) }) diff --git a/test/files/run/repl-suppressed-warnings.check b/test/files/run/repl-suppressed-warnings.check index 0c449f348c..a8ab9296c0 100644 --- a/test/files/run/repl-suppressed-warnings.check +++ b/test/files/run/repl-suppressed-warnings.check @@ -30,12 +30,18 @@ scala> object o { } } case class DingDangDoobie(ding: Int, dang: Int, doobie: Double) - case class Dongoo ; case class Heyooooo ; for (x <- 1 to 10 ; val y = x ; z = y) yield x + case class Dongoo + @serializable case class Heyooooo + + @deprecated("I'm an ironic deprecation warning") def f0 = 5 // where's this disappearing? + def f1 = scala.Math.Pi // and this? } -warning: there were 4 deprecation warnings; re-run with -deprecation for details +warning: there were 6 deprecation warnings; re-run with -deprecation for details warning: there were 3 unchecked warnings; re-run with -unchecked for details defined module o +scala> + scala> :warnings <console>:3: warning: case classes without a parameter list have been deprecated; use either case objects or case classes with `()' as parameter list. @@ -43,15 +49,16 @@ use either case objects or case classes with `()' as parameter list. ^ <console>:11: warning: case classes without a parameter list have been deprecated; use either case objects or case classes with `()' as parameter list. - case class Dongoo ; case class Heyooooo ; for (x <- 1 to 10 ; val y = x ; z = y) yield x - ^ + case class Dongoo + ^ <console>:11: warning: case classes without a parameter list have been deprecated; use either case objects or case classes with `()' as parameter list. - case class Dongoo ; case class Heyooooo ; for (x <- 1 to 10 ; val y = x ; z = y) yield x - ^ -<console>:11: warning: for comprehension assignment without a `val' declaration is deprecated. - case class Dongoo ; case class Heyooooo ; for (x <- 1 to 10 ; val y = x ; z = y) yield x - ^ + case class Dongoo + ^ +<console>:12: warning: case classes without a parameter list have been deprecated; +use either case objects or case classes with `()' as parameter list. + @serializable case class Heyooooo + ^ scala> diff --git a/test/files/run/repl-suppressed-warnings.scala b/test/files/run/repl-suppressed-warnings.scala index 5ecc16f34c..2d96a8eb24 100644 --- a/test/files/run/repl-suppressed-warnings.scala +++ b/test/files/run/repl-suppressed-warnings.scala @@ -19,8 +19,13 @@ object o { } } case class DingDangDoobie(ding: Int, dang: Int, doobie: Double) - case class Dongoo ; case class Heyooooo ; for (x <- 1 to 10 ; val y = x ; z = y) yield x + case class Dongoo + @serializable case class Heyooooo + + @deprecated("I'm an ironic deprecation warning") def f0 = 5 // where's this disappearing? + def f1 = scala.Math.Pi // and this? } + :warnings """ } diff --git a/test/files/run/sequenceComparisons.scala b/test/files/run/sequenceComparisons.scala index 2b5833aacc..c2f7ddc697 100644 --- a/test/files/run/sequenceComparisons.scala +++ b/test/files/run/sequenceComparisons.scala @@ -104,10 +104,10 @@ object Test { val scrut = s1f(seq) for (Method(f, (trueList, falseList), descr) <- methodList) { - for (s <- trueList; val rhs = s2f(s)) + for (s <- trueList; rhs = s2f(s)) assertOne(scrut, rhs, f(scrut, rhs), descr) - for (s <- falseList; val rhs = s2f(s)) + for (s <- falseList; rhs = s2f(s)) assertOne(scrut, rhs, !f(scrut, rhs), "!(" + descr + ")") } } diff --git a/test/files/run/t1939.scala b/test/files/run/t1939.scala index 5a36348761..7626e8bc1a 100644 --- a/test/files/run/t1939.scala +++ b/test/files/run/t1939.scala @@ -25,7 +25,7 @@ object Test extends App { def f(ts: List[tType]): Unit = { - for (t <- ts; val m = t.module) {} + for (t <- ts; m = t.module) {} ts.map(t => t.module).foreach { _ => () } // ts.map(t => (t : T).module).foreach { _ => () } // runs successfully } |