@@ -2,20 +2,21 @@ package dotty.tools.dotc.quoted
2
2
3
3
import dotty .tools .dotc .ast .tpd
4
4
import dotty .tools .dotc .Driver
5
- import dotty .tools .dotc .core .Contexts .Context
5
+ import dotty .tools .dotc .core .Contexts .{ Context , ContextBase }
6
6
import dotty .tools .io .{AbstractFile , Directory , PlainDirectory , VirtualDirectory }
7
7
import dotty .tools .repl .AbstractFileClassLoader
8
8
9
9
import scala .quoted .{Expr , Type }
10
10
import java .net .URLClassLoader
11
11
12
- import Toolbox .{Run , Settings , Show }
13
12
import dotty .tools .dotc .tastyreflect .TastyImpl
14
13
15
14
class QuoteDriver extends Driver {
16
15
import tpd ._
17
16
18
- def run [T ](expr : Expr [T ], settings : Settings [Run ]): T = {
17
+ private [this ] val contextBase : ContextBase = new ContextBase
18
+
19
+ def run [T ](expr : Expr [T ], settings : ToolboxSettings ): T = {
19
20
val (_, ctx : Context ) = setup(settings.compilerArgs.toArray :+ " dummy.scala" , initCtx.fresh)
20
21
21
22
val outDir : AbstractFile = settings.outDir match {
@@ -39,15 +40,15 @@ class QuoteDriver extends Driver {
39
40
method.invoke(instance).asInstanceOf [T ]
40
41
}
41
42
42
- def show (expr : Expr [_], settings : Settings [ Show ] ): String = {
43
+ def show (expr : Expr [_], settings : ToolboxSettings ): String = {
43
44
def show (tree : Tree , ctx : Context ): String = {
44
45
val tree1 = if (settings.rawTree) tree else (new TreeCleaner ).transform(tree)(ctx)
45
46
new TastyImpl (ctx).showSourceCode.showTree(tree1)(ctx)
46
47
}
47
48
withTree(expr, show, settings)
48
49
}
49
50
50
- def withTree [T ](expr : Expr [_], f : (Tree , Context ) => T , settings : Settings [_] ): T = {
51
+ def withTree [T ](expr : Expr [_], f : (Tree , Context ) => T , settings : ToolboxSettings ): T = {
51
52
val (_, ctx : Context ) = setup(settings.compilerArgs.toArray :+ " dummy.scala" , initCtx.fresh)
52
53
53
54
var output : Option [T ] = None
@@ -59,7 +60,7 @@ class QuoteDriver extends Driver {
59
60
output.getOrElse(throw new Exception (" Could not extract " + expr))
60
61
}
61
62
62
- def withTypeTree [T ](tpe : Type [_], f : (TypTree , Context ) => T , settings : Settings [_] ): T = {
63
+ def withTypeTree [T ](tpe : Type [_], f : (TypTree , Context ) => T , settings : ToolboxSettings ): T = {
63
64
val (_, ctx : Context ) = setup(settings.compilerArgs.toArray :+ " dummy.scala" , initCtx.fresh)
64
65
65
66
var output : Option [T ] = None
@@ -72,7 +73,7 @@ class QuoteDriver extends Driver {
72
73
}
73
74
74
75
override def initCtx : Context = {
75
- val ictx = super .initCtx.fresh
76
+ val ictx = contextBase.initialCtx
76
77
var classpath = System .getProperty(" java.class.path" )
77
78
this .getClass.getClassLoader match {
78
79
case cl : URLClassLoader =>
0 commit comments