Skip to content

Commit 0850ae1

Browse files
committed
Add more evaluation tests
1 parent 12212bf commit 0850ae1

File tree

73 files changed

+1034
-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.

73 files changed

+1034
-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:
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
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

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 |<>&(:)!

0 commit comments

Comments
 (0)