File tree Expand file tree Collapse file tree 4 files changed +34
-7
lines changed
compiler/src/dotty/tools/dotc/quoted Expand file tree Collapse file tree 4 files changed +34
-7
lines changed Original file line number Diff line number Diff line change @@ -13,10 +13,9 @@ import java.nio.charset.StandardCharsets
13
13
14
14
class QuoteDriver extends Driver {
15
15
16
- def run [T ](expr : Expr [T ]): T = {
16
+ def run [T ](expr : Expr [T ], optimise : Boolean ): T = {
17
17
val ctx : Context = initCtx.fresh
18
- // TODO enable optimisation?
19
- // ctx.settings.optimise.update(true)(ctx)
18
+ ctx.settings.optimise.update(optimise)(ctx)
20
19
21
20
val outDir = new VirtualDirectory (" (memory)" , None )
22
21
Original file line number Diff line number Diff line change @@ -13,10 +13,7 @@ object Runners {
13
13
14
14
implicit def runner [T ]: Runner [T ] = new Runner [T ] {
15
15
16
- def run (expr : Expr [T ]): T = expr match {
17
- case expr : ConstantExpr [T ] => expr.value
18
- case _ => new QuoteDriver ().run(expr)
19
- }
16
+ def run (expr : Expr [T ]): T = Runners .run(expr, optimise = false )
20
17
21
18
def show (expr : Expr [T ]): String = expr match {
22
19
case expr : ConstantExpr [T ] =>
@@ -27,4 +24,9 @@ object Runners {
27
24
case _ => new QuoteDriver ().show(expr)
28
25
}
29
26
}
27
+
28
+ def run [T ](expr : Expr [T ], optimise : Boolean ): T = expr match {
29
+ case expr : ConstantExpr [T ] => expr.value
30
+ case _ => new QuoteDriver ().run(expr, optimise)
31
+ }
30
32
}
Original file line number Diff line number Diff line change
1
+ {
2
+ val a: Int = 3
3
+ println("foo")
4
+ 2.+(a)
5
+ }
6
+ foo
7
+ 5
8
+ foo
9
+ 5
Original file line number Diff line number Diff line change
1
+
2
+ import dotty .tools .dotc .quoted .Runners ._
3
+
4
+ import scala .quoted ._
5
+
6
+ object Test {
7
+ def main (args : Array [String ]): Unit = {
8
+ val expr = ' {
9
+ val a = 3
10
+ println(" foo" )
11
+ 2 + a
12
+ }
13
+ println(expr.show)
14
+ println(run(expr.run, optimise = true ))
15
+ println(expr.run)
16
+ }
17
+ }
You can’t perform that action at this time.
0 commit comments