aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/core/Definitions.scala2
-rw-r--r--src/dotty/tools/dotc/transform/ClassOf.scala9
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)
}