@@ -3,10 +3,11 @@ package quoted
33
44import dotty .tools .backend .jvm .GenBCode
55import dotty .tools .dotc .ast .tpd
6-
76import dotty .tools .dotc .core .Contexts .Context
8- import dotty .tools .dotc .core .Flags .{EmptyFlags , Method }
9- import dotty .tools .dotc .core .{Mode , Phases }
7+ import dotty .tools .dotc .core .Decorators ._
8+ import dotty .tools .dotc .core .Flags ._
9+ import dotty .tools .dotc .core .Mode
10+ import dotty .tools .dotc .core .Names .TypeName
1011import dotty .tools .dotc .core .Phases .Phase
1112import dotty .tools .dotc .core .Scopes .{EmptyScope , newScope }
1213import dotty .tools .dotc .core .StdNames .nme
@@ -17,14 +18,14 @@ import dotty.tools.dotc.transform.ReifyQuotes
1718import dotty .tools .dotc .typer .FrontEnd
1819import dotty .tools .dotc .util .Positions .Position
1920import dotty .tools .dotc .util .SourceFile
20- import dotty .tools .io .{Path , PlainFile , VirtualDirectory }
21+ import dotty .tools .io .{AbstractFile , Path , PlainFile }
2122
2223import scala .quoted .Expr
2324
2425/** Compiler that takes the contents of a quoted expression `expr` and produces
2526 * a class file with `class ' { def apply: Object = expr }`.
2627 */
27- class ExprCompiler (directory : VirtualDirectory ) extends Compiler {
28+ class ExprCompiler (directory : AbstractFile ) extends Compiler {
2829 import tpd ._
2930
3031 /** A GenBCode phase that outputs to a virtual directory */
@@ -47,6 +48,8 @@ class ExprCompiler(directory: VirtualDirectory) extends Compiler {
4748 new ExprRun (this , ctx.addMode(Mode .ReadPositions ))
4849 }
4950
51+ def outputClassName : TypeName = " Quoted" .toTypeName
52+
5053 /** Frontend that receives scala.quoted.Expr as input */
5154 class ExprFrontend (putInClass : Boolean ) extends FrontEnd {
5255 import tpd ._
@@ -72,7 +75,7 @@ class ExprCompiler(directory: VirtualDirectory) extends Compiler {
7275 val pos = Position (0 )
7376 val assocFile = new PlainFile (Path (" <quote>" ))
7477
75- val cls = ctx.newCompleteClassSymbol(defn.RootClass , nme. QUOTE .toTypeName , EmptyFlags ,
78+ val cls = ctx.newCompleteClassSymbol(defn.RootClass , outputClassName , EmptyFlags ,
7679 defn.ObjectType :: Nil , newScope, coord = pos, assocFile = assocFile).entered.asClass
7780 cls.enter(ctx.newDefaultConstructor(cls), EmptyScope )
7881 val meth = ctx.newSymbol(cls, nme.apply, Method , ExprType (defn.AnyType ), coord = pos).entered
0 commit comments