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