diff --git a/main-actions/src/main/scala/sbt/compiler/Eval.scala b/main-actions/src/main/scala/sbt/compiler/Eval.scala index a54d0807b..025dc2810 100644 --- a/main-actions/src/main/scala/sbt/compiler/Eval.scala +++ b/main-actions/src/main/scala/sbt/compiler/Eval.scala @@ -1,6 +1,7 @@ package sbt package compiler +import scala.collection.mutable.ListBuffer import scala.reflect.Manifest import scala.tools.nsc.{ ast, interpreter, io, reporters, util, CompilerCommand, Global, Phase, Settings } import io.{ AbstractFile, PlainFile, VirtualDirectory } @@ -337,14 +338,12 @@ final class Eval(optionsNoncp: Seq[String], classpath: Seq[File], mkReporter: Se /** Parses one or more definitions (defs, vals, lazy vals, classes, traits, modules). */ private[this] def parseDefinitions(parser: syntaxAnalyzer.UnitParser): Seq[Tree] = { - var defs = parser.nonLocalDefOrDcl - parser.acceptStatSepOpt() - while (!parser.isStatSeqEnd) { - val next = parser.nonLocalDefOrDcl - defs ++= next + val defs = ListBuffer[Tree]() + do { + defs ++= parser.nonLocalDefOrDcl parser.acceptStatSepOpt() - } - defs + } while (!parser.isStatSeqEnd) + defs.toList } private[this] trait EvalType[T] { diff --git a/run/src/main/scala/sbt/TrapExitSecurityException.scala b/run/src/main/scala/sbt/TrapExitSecurityException.scala index 50bdab303..dc5792e66 100644 --- a/run/src/main/scala/sbt/TrapExitSecurityException.scala +++ b/run/src/main/scala/sbt/TrapExitSecurityException.scala @@ -6,21 +6,10 @@ package sbt * terminating the thread's execution. */ private final class TrapExitSecurityException(val exitCode: Int) extends SecurityException { - private var accessAllowed = false - def allowAccess(): Unit = { - accessAllowed = true - } - override def printStackTrace = ifAccessAllowed(super.printStackTrace) - override def toString = ifAccessAllowed(super.toString) - override def getCause = ifAccessAllowed(super.getCause) - override def getMessage = ifAccessAllowed(super.getMessage) - override def fillInStackTrace = ifAccessAllowed(super.fillInStackTrace) - override def getLocalizedMessage = ifAccessAllowed(super.getLocalizedMessage) - private def ifAccessAllowed[T](f: => T): T = - { - if (accessAllowed) - f - else - throw this - } + override def printStackTrace = throw this + override def toString = throw this + override def getCause = throw this + override def getMessage = throw this + override def fillInStackTrace = throw this + override def getLocalizedMessage = throw this } diff --git a/scripted/sbt/src/main/scala/sbt/test/ScriptedTests.scala b/scripted/sbt/src/main/scala/sbt/test/ScriptedTests.scala index 0778f9ba7..f341a4925 100644 --- a/scripted/sbt/src/main/scala/sbt/test/ScriptedTests.scala +++ b/scripted/sbt/src/main/scala/sbt/test/ScriptedTests.scala @@ -31,7 +31,6 @@ final class ScriptedTests(resourceBaseDirectory: File, bufferLog: Boolean, launc def scriptedTest(group: String, name: String, prescripted: File => Unit, log: Logger): Seq[() => Option[String]] = { import sbt.io.syntax._ import GlobFilter._ - var failed = false for (groupDir <- (resourceBaseDirectory * group).get; nme <- (groupDir * name).get) yield { val g = groupDir.getName val n = nme.getName diff --git a/tasks/src/main/scala/sbt/Incomplete.scala b/tasks/src/main/scala/sbt/Incomplete.scala index 5f40193de..a83e33e36 100644 --- a/tasks/src/main/scala/sbt/Incomplete.scala +++ b/tasks/src/main/scala/sbt/Incomplete.scala @@ -3,6 +3,8 @@ */ package sbt +import scala.collection.mutable.ListBuffer + import sbt.internal.util.IDSet import Incomplete.{ Error, Value => IValue } @@ -47,9 +49,9 @@ object Incomplete extends Enumeration { } def linearize(i: Incomplete): Seq[Incomplete] = { - var ordered = List[Incomplete]() - visitAll(i) { ordered ::= _ } - ordered + val ordered = ListBuffer[Incomplete]() + visitAll(i) { ordered += _ } + ordered.toList } def allExceptions(is: Seq[Incomplete]): Iterable[Throwable] = allExceptions(new Incomplete(None, causes = is))