Skip to content
This repository was archived by the owner on Sep 1, 2020. It is now read-only.

Commit 39a5e1a

Browse files
committed
SI-7747 More tests and logic according to our conclusions on scala#4522.
1 parent db114aa commit 39a5e1a

File tree

5 files changed

+29
-6
lines changed

5 files changed

+29
-6
lines changed

src/repl/scala/tools/nsc/interpreter/Imports.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,15 +166,15 @@ trait Imports {
166166
for (imv <- x.definedNames) {
167167
if (!currentImps.contains(imv)) {
168168
x match {
169-
case _: ValHandler | _: ModuleHandler =>
169+
case _: ClassHandler =>
170+
code.append("import " + objName + req.accessPath + ".`" + imv + "`\n")
171+
case _ =>
170172
val valName = req.lineRep.packageName + req.lineRep.readName
171173
if (!tempValLines.contains(req.lineRep.lineId)) {
172174
code.append(s"val $valName = $objName\n")
173175
tempValLines += req.lineRep.lineId
174176
}
175-
code.append(s"import $valName ${req.accessPath}.`$imv`;\n")
176-
case _ =>
177-
code.append("import " + objName + req.accessPath + ".`" + imv + "`\n")
177+
code.append(s"import $valName${req.accessPath}.`$imv`;\n")
178178
}
179179
currentImps += imv
180180
}

test/files/run/repl-serialization.check

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
extract: AnyRef => Unit = <function1>
33
evaluating x
44
x: Int = 0
5+
getX: ()Int
6+
defined class U
57
y: Int = <lazy>
68
evaluating z
79
evaluating zz
@@ -11,6 +13,8 @@ zz: Int = 0
1113
defined object O
1214
defined class A
1315
defined type alias AA
16+
constructing U
17+
u: U = U
1418
== evaluating lambda
1519
evaluating y
1620
evaluating O

test/files/run/repl-serialization.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,15 @@ object Test {
2525

2626
val code =
2727
"""val x = {println(" evaluating x"); 0 }
28+
|def getX() = x
29+
|class U extends Serializable { println("constructing U"); val x = 0 ; override def toString = "U" }
2830
|lazy val y = {println(" evaluating y"); 0 }
2931
|class D; val z = {println(" evaluating z"); 0}; val zz = {println(" evaluating zz"); 0}
3032
|object O extends Serializable { val apply = {println(" evaluating O"); 0} }
3133
|class A(i: Int) { println(" constructing A") }
3234
|type AA = A
33-
|extract(() => new AA(x + y + z + zz + O.apply))
35+
|val u = new U()
36+
|extract(() => new AA(x + getX() + y + z + zz + O.apply + u.x))
3437
""".stripMargin
3538

3639
imain = new IMain(settings)

test/files/run/t7747-repl.check

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,18 @@ object $read extends scala.AnyRef {
284284
}
285285
res3: List[Product with Serializable] = List(BippyBups(), PuppyPups(), Bingo())
286286

287+
scala> case class Sum(exp: String, exp2: String)
288+
defined class Sum
289+
290+
scala> val a = Sum("A", "B")
291+
a: Sum = Sum(A,B)
292+
293+
scala> def b(a: Sum): String = a match { case Sum(_, _) => "Found Sum" }
294+
b: (a: Sum)String
295+
296+
scala> b(a)
297+
res4: String = Found Sum
298+
287299
scala> :power
288300
** Power User mode enabled - BEEP WHIR GYVE **
289301
** :phase has been set to 'typer'. **
@@ -292,6 +304,6 @@ scala> :power
292304
** Try :help, :vals, power.<tab> **
293305

294306
scala> intp.lastRequest
295-
res4: $r.intp.Request = Request(line=def $ires3 = intp.global, 1 trees)
307+
res5: $r.intp.Request = Request(line=def $ires3 = intp.global, 1 trees)
296308

297309
scala> :quit

test/files/run/t7747-repl.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ object Test extends ReplTest {
6565
|case class PuppyPups()
6666
|case class Bingo()
6767
|List(BippyBups(), PuppyPups(), Bingo()) // show
68+
|case class Sum(exp: String, exp2: String)
69+
|val a = Sum("A", "B")
70+
|def b(a: Sum): String = a match { case Sum(_, _) => "Found Sum" }
71+
|b(a)
6872
|:power
6973
|intp.lastRequest
7074
|""".stripMargin

0 commit comments

Comments
 (0)