File tree Expand file tree Collapse file tree 2 files changed +37
-0
lines changed Expand file tree Collapse file tree 2 files changed +37
-0
lines changed Original file line number Diff line number Diff line change
1
+ track (i = 2): Test$.main(i4947a.scala:4)
2
+ track (i = 2): Test$.main(i4947a.scala:5)
3
+ main1 (i = -1): Test$.main(i4947a.scala:20)
4
+ main2 (i = -1): Test$.main(i4947a.scala:21)
5
+ track (i = 1): Test$.main(i4947a.scala:4)
6
+ track (i = 1): Test$.main(i4947a.scala:5)
7
+ main1 (i = -1): Test$.main(i4947a.scala:20)
8
+ main2 (i = -1): Test$.main(i4947a.scala:21)
9
+ track (i = 0): Test$.main(i4947a.scala:4)
10
+ track (i = 0): Test$.main(i4947a.scala:5)
11
+ main1 (i = -1): Test$.main(i4947a.scala:20)
12
+ main2 (i = -1): Test$.main(i4947a.scala:21)
Original file line number Diff line number Diff line change
1
+ object Test {
2
+
3
+ transparent def fact [T ](transparent i : Int )(f : => T ): Int = {
4
+ printStack(" track" , i)
5
+ printStack(" track" , i)
6
+ f
7
+ if (i == 0 )
8
+ 1
9
+ else {
10
+ i * fact(i- 1 )(f)
11
+ }
12
+ }
13
+
14
+ def printStack (tag : String , i : Int ): Unit = {
15
+ println(s " $tag (i = $i): ${new Exception ().getStackTrace().apply(1 )}" )
16
+ }
17
+
18
+ def main (args : Array [String ]): Unit = {
19
+ fact(2 ) {
20
+ printStack(" main1" , - 1 )
21
+ printStack(" main2" , - 1 )
22
+ }
23
+ }
24
+
25
+ }
You can’t perform that action at this time.
0 commit comments