diff options
-rw-r--r-- | src/dotty/tools/dotc/core/Definitions.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/ClassOf.scala | 9 |
2 files changed, 3 insertions, 8 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala index 188a00fc2..f16f25b23 100644 --- a/src/dotty/tools/dotc/core/Definitions.scala +++ b/src/dotty/tools/dotc/core/Definitions.scala @@ -221,6 +221,8 @@ class Definitions { lazy val Predef_conformsR = ScalaPredefModule.requiredMethodRef("$conforms") def Predef_conforms(implicit ctx: Context) = Predef_conformsR.symbol + lazy val Predef_classOfR = ScalaPredefModule.requiredMethodRef("classOf") + def Predef_classOf(implicit ctx: Context) = Predef_classOfR.symbol lazy val ScalaRuntimeModuleRef = ctx.requiredModuleRef("scala.runtime.ScalaRunTime") def ScalaRuntimeModule(implicit ctx: Context) = ScalaRuntimeModuleRef.symbol diff --git a/src/dotty/tools/dotc/transform/ClassOf.scala b/src/dotty/tools/dotc/transform/ClassOf.scala index f8f4991c8..e7b6977c7 100644 --- a/src/dotty/tools/dotc/transform/ClassOf.scala +++ b/src/dotty/tools/dotc/transform/ClassOf.scala @@ -21,15 +21,8 @@ class ClassOf extends MiniPhaseTransform { override def phaseName: String = "classOf" - private var classOfMethod: TermSymbol = _ - - override def prepareForUnit(tree: tpd.Tree)(implicit ctx: Context): TreeTransform = { - classOfMethod = defn.ScalaPredefModule.requiredMethod(nme.classOf) - this - } - override def transformTypeApply(tree: TypeApply)(implicit ctx: Context, info: TransformerInfo): Tree = - if (tree.symbol eq classOfMethod) { + if (tree.symbol eq defn.Predef_classOf) { val targ = tree.args.head.tpe clsOf(targ).ensureConforms(tree.tpe).withPos(tree.pos) } |