Skip to content

Commit 5af8f55

Browse files
committed
More cleanup
1 parent 3fd7a06 commit 5af8f55

File tree

6 files changed

+51
-63
lines changed

6 files changed

+51
-63
lines changed

compiler/src/dotty/tools/repl/ReplCompiler.scala

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,24 @@
1-
package dotty.tools
2-
package repl
3-
4-
import dotc.ast.Trees._
5-
import dotc.ast.{ untpd, tpd }
6-
import dotc.{ Run, CompilationUnit, Compiler }
7-
import dotc.core.Decorators._, dotc.core.Flags._, dotc.core.Phases, Phases.Phase
8-
import dotc.core.Names._, dotc.core.Contexts._, dotc.core.StdNames._
9-
import dotc.core.Constants.Constant
10-
import dotc.util.SourceFile
11-
import dotc.typer.{ ImportInfo, FrontEnd }
12-
import backend.jvm.GenBCode
13-
import dotc.core.NameOps._
14-
import dotc.util.Positions._
15-
import dotc.reporting.diagnostic.messages
16-
import io._
17-
18-
import results._
1+
package dotty.tools.repl
2+
3+
import dotty.tools.backend.jvm.GenBCode
4+
import dotty.tools.dotc.ast.Trees._
5+
import dotty.tools.dotc.ast.{tpd, untpd}
6+
import dotty.tools.dotc.core.Contexts._
7+
import dotty.tools.dotc.core.Decorators._
8+
import dotty.tools.dotc.core.Flags._
9+
import dotty.tools.dotc.core.Names._
10+
import dotty.tools.dotc.core.Phases
11+
import dotty.tools.dotc.core.Phases.Phase
12+
import dotty.tools.dotc.core.StdNames._
13+
import dotty.tools.dotc.reporting.diagnostic.messages
14+
import dotty.tools.dotc.typer.{FrontEnd, ImportInfo}
15+
import dotty.tools.dotc.util.Positions._
16+
import dotty.tools.dotc.util.SourceFile
17+
import dotty.tools.dotc.{CompilationUnit, Compiler, Run}
18+
import dotty.tools.io._
19+
import dotty.tools.repl.results._
20+
21+
import scala.collection.mutable
1922

2023
/** This subclass of `Compiler` replaces the appropriate phases in order to
2124
* facilitate the REPL
@@ -59,13 +62,11 @@ class ReplCompiler(val directory: AbstractFile) extends Compiler {
5962
}
6063
}
6164

62-
private[this] var objectNames = Map.empty[Int, TermName]
65+
private[this] val objectNames = mutable.Map.empty[Int, TermName]
6366
private def objectName(state: State) =
64-
objectNames.get(state.objectIndex).getOrElse {
65-
val newName = (str.REPL_SESSION_LINE + state.objectIndex).toTermName
66-
objectNames = objectNames + (state.objectIndex -> newName)
67-
newName
68-
}
67+
objectNames.getOrElseUpdate(state.objectIndex, {
68+
(str.REPL_SESSION_LINE + state.objectIndex).toTermName
69+
})
6970

7071
private case class Definitions(stats: List[untpd.Tree], state: State)
7172

@@ -77,7 +78,7 @@ class ReplCompiler(val directory: AbstractFile) extends Compiler {
7778
var valIdx = state.valIndex
7879

7980
val defs = trees.flatMap {
80-
case expr @ Assign(id: Ident, rhs) =>
81+
case expr @ Assign(id: Ident, _) =>
8182
// special case simple reassignment (e.g. x = 3)
8283
// in order to print the new value in the REPL
8384
val assignName = (id.name ++ str.REPL_ASSIGN_SUFFIX).toTermName
@@ -124,7 +125,7 @@ class ReplCompiler(val directory: AbstractFile) extends Compiler {
124125

125126
val tmpl = Template(emptyConstructor, Nil, EmptyValDef, defs.stats)
126127
val module = ModuleDef(objectName(defs.state), tmpl)
127-
.withMods(new Modifiers(Module | Final))
128+
.withMods(Modifiers(Module | Final))
128129
.withPos(Position(0, defs.stats.last.pos.end))
129130

130131
PackageDef(Ident(nme.EMPTY_PACKAGE), List(module))
@@ -152,7 +153,6 @@ class ReplCompiler(val directory: AbstractFile) extends Compiler {
152153

153154
final def typeOf(expr: String)(implicit state: State): Result[String] =
154155
typeCheck(expr).map { tree =>
155-
import dotc.ast.Trees._
156156
implicit val ctx = state.context
157157
tree.rhs match {
158158
case Block(xs, _) => xs.last.tpe.widen.show
@@ -180,13 +180,13 @@ class ReplCompiler(val directory: AbstractFile) extends Compiler {
180180

181181
PackageDef(Ident(nme.EMPTY_PACKAGE),
182182
TypeDef("EvaluateExpr".toTypeName, tmpl)
183-
.withMods(new Modifiers(Final))
183+
.withMods(Modifiers(Final))
184184
.withPos(Position(0, expr.length)) :: Nil
185185
)
186186
}
187187

188188
ParseResult(expr) match {
189-
case Parsed(sourceCode, trees) =>
189+
case Parsed(_, trees) =>
190190
wrap(trees).result
191191
case SyntaxErrors(_, reported, trees) =>
192192
if (errorsAllowed) wrap(trees).result

compiler/src/dotty/tools/repl/ReplDriver.scala

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import dotty.tools.dotc.reporting.MessageRendering
2020
import dotty.tools.dotc.reporting.diagnostic.{Message, MessageContainer}
2121
import dotty.tools.dotc.util.Positions.Position
2222
import dotty.tools.dotc.util.{SourceFile, SourcePosition}
23-
import dotty.tools.dotc.{CompilationUnit, Driver, Run}
23+
import dotty.tools.dotc.{CompilationUnit, Driver}
2424
import dotty.tools.io._
2525
import org.jline.reader._
2626

@@ -42,11 +42,9 @@ import scala.collection.JavaConverters._
4242
* `valIndex`.
4343
*
4444
* @param objectIndex the index of the next wrapper
45-
* @param valIndex the index of next value binding for free expressions
46-
* @param imports a list of tuples of imports on tree form and shown form
47-
* @param run the latest run initiated at the start of interpretation. This
48-
* run and its context should be used in order to perform any
49-
* manipulation on `Tree`s and `Symbol`s.
45+
* @param valIndex the index of next value binding for free expressions
46+
* @param imports the list of user defined imports
47+
* @param context the latest compiler context
5048
*/
5149
case class State(objectIndex: Int,
5250
valIndex: Int,
@@ -189,7 +187,7 @@ class ReplDriver(settings: Array[String],
189187
case parsed: Parsed if parsed.trees.nonEmpty =>
190188
compile(parsed, state)
191189

192-
case SyntaxErrors(src, errs, _) =>
190+
case SyntaxErrors(_, errs, _) =>
193191
displayErrors(errs)
194192
state
195193

compiler/test/dotty/tools/repl/ReplCompilerTests.scala

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
1-
package dotty.tools
2-
package repl
1+
package dotty.tools.repl
32

43
import org.junit.Assert._
5-
import org.junit.{Test, Ignore}
6-
7-
import dotc.core.Contexts.Context
8-
import dotc.ast.Trees._
9-
import dotc.ast.untpd
4+
import org.junit.{Ignore, Test}
105

116
class ReplCompilerTests extends ReplTest {
127

compiler/test/dotty/tools/repl/ReplTest.scala

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
package dotty.tools
2-
package repl
1+
package dotty.tools.repl
32

4-
import dotty.Jars
5-
import java.io.{ PrintStream, ByteArrayOutputStream }
6-
import org.junit.{ Before, After }
7-
import dotc.reporting.MessageRendering
8-
import org.junit.Assert.fail
3+
import java.io.{ByteArrayOutputStream, PrintStream}
94

10-
import results._
5+
import dotty.Jars
6+
import dotty.tools.dotc.reporting.MessageRendering
7+
import org.junit.{After, Before}
118

129

1310
class ReplTest private (out: ByteArrayOutputStream) extends ReplDriver(

compiler/test/dotty/tools/repl/TabcompleteTests.scala

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
package dotty.tools
2-
package repl
1+
package dotty.tools.repl
32

43
import org.junit.Assert._
54
import org.junit.Test
@@ -11,27 +10,27 @@ class TabcompleteTests extends ReplTest {
1110
private[this] def tabComplete(src: String)(implicit state: State): List[String] =
1211
completions(src.length, src, state).map(_.value)
1312

14-
@Test def tabCompleteList: Unit = fromInitialState { implicit s =>
13+
@Test def tabCompleteList = fromInitialState { implicit s =>
1514
val comp = tabComplete("List.r")
1615
assertEquals(List("range"), comp.distinct)
1716
}
1817

19-
@Test def tabCompleteListInstance: Unit = fromInitialState { implicit s =>
18+
@Test def tabCompleteListInstance = fromInitialState { implicit s =>
2019
val comp = tabComplete("(null: List[Int]).sli")
2120
assertEquals(List("slice", "sliding"), comp.distinct.sorted)
2221
}
2322

24-
@Test def tabCompleteModule: Unit = fromInitialState{ implicit s =>
23+
@Test def tabCompleteModule = fromInitialState{ implicit s =>
2524
val comp = tabComplete("scala.Pred")
2625
assertEquals(List("Predef"), comp)
2726
}
2827

29-
@Test def tabCompleteInClass: Unit = fromInitialState { implicit s =>
28+
@Test def tabCompleteInClass = fromInitialState { implicit s =>
3029
val comp = tabComplete("class Foo { def bar: List[Int] = List.ap")
3130
assertEquals(List("apply"), comp)
3231
}
3332

34-
@Test def tabCompleteTwiceIn: Unit = {
33+
@Test def tabCompleteTwiceIn = {
3534
val src1 = "class Foo { def bar(xs: List[Int]) = xs.map"
3635
val src2 = "class Foo { def bar(xs: List[Int]) = xs.mapC"
3736

@@ -46,13 +45,13 @@ class TabcompleteTests extends ReplTest {
4645
}
4746
}
4847

49-
@Test def i3309: Unit = fromInitialState { implicit s =>
48+
@Test def i3309 = fromInitialState { implicit s =>
5049
// We make sure we do not crash
5150
List("\"", ")", "'", "¨", "£", ":", ",", ";", "@", "}", "[", "]", ".")
5251
.foreach(tabComplete(_))
5352
}
5453

55-
@Test def completeFromPreviousState: Unit =
54+
@Test def completeFromPreviousState =
5655
fromInitialState { implicit state =>
5756
val src = "class Foo { def comp3 = 3; def comp1 = 1; def comp2 = 2 }"
5857
run(src)

compiler/test/dotty/tools/repl/TypeTests.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
package dotty.tools
2-
package repl
1+
package dotty.tools.repl
32

4-
import org.junit.Test
53
import org.junit.Assert._
4+
import org.junit.Test
65

76
class TypeTests extends ReplTest {
87
@Test def typeOf1 = fromInitialState { implicit s =>

0 commit comments

Comments
 (0)