Skip to content

Commit 7556b14

Browse files
committed
Add more evaluation tests
1 parent d660758 commit 7556b14

File tree

67 files changed

+987
-2
lines changed

Some content is hidden

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

67 files changed

+987
-2
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ 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()
19-
compileFilesInDir("tests/debug", TestConfiguration.defaultOptions).checkDebug()
18+
compileFile("tests/debug/eval-enum.scala", TestConfiguration.defaultOptions).checkDebug()
19+
// compileFilesInDir("tests/debug", TestConfiguration.defaultOptions).checkDebug()
2020

2121
object DebugTests extends ParallelTesting:
2222
def maxDuration =

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")

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

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

tests/debug/eval-captures.scala

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
object Test:
2+
def main(args: Array[String]): Unit =
3+
val a = new A
4+
println(a.m)
5+
6+
class A:
7+
def m: String =
8+
val x1 = "x1"
9+
class B:
10+
def m: String =
11+
val x2 = "x2"
12+
def m: String =
13+
val x3 = "x3"
14+
class C:
15+
def m: String =
16+
val x4 = "x4"
17+
def m: String =
18+
x1 + x2 + x3 + x4
19+
m
20+
val c = new C
21+
c.m
22+
m
23+
end m
24+
end B
25+
val b = new B
26+
b.m

tests/debug/eval-encoding.check

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
break Test$ 4
2+
eval | + new <> + &(":") + !
3+
result |<>&(:)!

tests/debug/eval-encoding.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+
val ! = "!"
4+
println(| + new <> + &(":") + !)
5+
private val | = "|"
6+
private class <> :
7+
override def toString: String = "<>"
8+
private def &(`:`: String): String = s"&(${`:`})"

tests/debug/eval-enum.check

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
break B$C 10 // B$C.<init>
2+
break Test$ 18
3+
eval A.A1.a
4+
result 1
5+
eval A.A2.a
6+
result 2
7+
8+
break B 13
9+
eval C.C1.m
10+
result bb
11+
eval C.C2("bb").m
12+
result bbb
13+
14+
break B$C 10
15+
eval C1.m
16+
result bb
17+
eval C2("bb").m
18+
result bbb

0 commit comments

Comments
 (0)