Skip to content

Commit 31b2441

Browse files
committed
Add more evaluation tests
1 parent 9920195 commit 31b2441

File tree

75 files changed

+1072
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+1072
-1
lines changed

compiler/test/dotty/tools/debug/DebugTests.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class DebugTests:
1515
import DebugTests.*
1616
@Test def debug: Unit =
1717
implicit val testGroup: TestGroup = TestGroup("debug")
18-
// compileFile("tests/debug/eval-private-members-in-parent.scala", TestConfiguration.defaultOptions).checkDebug()
18+
// compileFile("tests/debug/eval-local-class-in-value-class.scala", TestConfiguration.defaultOptions).checkDebug()
1919
compileFilesInDir("tests/debug", TestConfiguration.defaultOptions).checkDebug()
2020

2121
object DebugTests extends ParallelTesting:

tests/debug/eval-at-default-arg.check

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
break Test$ 6
2+
eval x + 1
3+
result 4

tests/debug/eval-at-default-arg.scala

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
object Test:
2+
def main(args: Array[String]): Unit =
3+
foo(3)()
4+
5+
def foo(x: Int)(
6+
y: Int = x + 1
7+
): Unit =
8+
println("foo")
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
break Test$ 5 // main
2+
break Test$ 5 // main$$anonfun$1
3+
eval x
4+
result hello
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
object Test:
2+
def main(args: Array[String]): Unit =
3+
val x = "hello"
4+
m:
5+
x + ", world!"
6+
7+
def m(y: => String): Unit = println(y)

tests/debug/eval-by-name.check

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
break Test$ 11
2+
eval x
3+
result foo
4+
eval m
5+
result foofoo
6+
eval A().m
7+
result fo
8+
eval this.m("bar")
9+
result barbarba
10+
11+
break Test$ 7
12+
eval x
13+
result foo
14+
eval m
15+
result foofoo
16+
eval A().m
17+
result fo
18+
19+
break Test$A$1 10
20+
eval x
21+
result foo
22+
eval m
23+
result fo
24+
eval A().m
25+
result fo
26+
27+
break A 14
28+
eval x
29+
result bar
30+
eval m
31+
result bar
32+
eval A("foo").m
33+
result foo

tests/debug/eval-by-name.scala

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
object Test:
2+
def main(args: Array[String]): Unit =
3+
println(m("foo") + A("bar").m)
4+
5+
def m(x: => String): String =
6+
def m: String =
7+
x + x
8+
class A:
9+
def m: String =
10+
x.take(2)
11+
m + A().m
12+
13+
class A(x: => String):
14+
def m: String = x
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
break Test$ 14
2+
eval new A("foo")
3+
result fo
4+
eval m("bar")
5+
result ba
6+
7+
break Test$A$1 9
8+
eval size
9+
result 2
10+
eval size.value
11+
result 2
12+
eval new A("foo")
13+
result fo
14+
15+
break Test$ 12
16+
eval size
17+
result 2
18+
eval size.value
19+
result 2
20+
eval new A("foo")
21+
result fo
22+
eval m("bar")
23+
result ba
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Size(val value: Int) extends AnyVal
2+
3+
object Test:
4+
def main(args: Array[String]): Unit =
5+
val size = new Size(2)
6+
7+
class A(msg: String):
8+
override def toString: String =
9+
msg.take(size.value)
10+
11+
def m(msg: String): String =
12+
msg.take(size.value)
13+
14+
println(new A("foo"))
15+
println(m("bar"))

tests/debug/eval-captures.check

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
break A 26
2+
eval (new B).m
3+
result x1x2x3x4
4+
5+
break A$B$1 22
6+
eval x1
7+
result x1
8+
eval m // local def m
9+
result x1x2x3x4
10+
eval (new B).m
11+
result x1x2x3x4
12+
eval A.this.m // compiles but throws NoSuchFieldException
13+
result java.lang.NoSuchFieldException: $outer
14+
15+
break A$B$1 21
16+
eval x1
17+
result x1
18+
eval x2
19+
result x2
20+
eval m
21+
result x1x2x3x4
22+
eval (new C).m
23+
result x1x2x3x4
24+
eval (new B).m
25+
result x1x2x3x4
26+
27+
break A$B$1$C$1 19
28+
eval x1
29+
result x1
30+
eval x2
31+
result x2
32+
eval x3
33+
result x3
34+
eval x4
35+
result x4
36+
eval m
37+
result x1x2x3x4
38+
eval (new C).m
39+
result x1x2x3x4
40+
eval (new B).m
41+
result x1x2x3x4
42+
43+
break A$B$1$C$1 18
44+
eval x1
45+
result x1
46+
eval x2
47+
result x2
48+
eval x3
49+
result x3
50+
eval x4
51+
result x4
52+
eval m
53+
result x1x2x3x4
54+
eval (new C).m
55+
result x1x2x3x4
56+
eval (new B).m
57+
result x1x2x3x4

0 commit comments

Comments
 (0)