From bae3da9de8dd8cb4cee561c7611013400bb54e04 Mon Sep 17 00:00:00 2001 From: Nicolas Stucki Date: Fri, 9 Mar 2018 15:40:04 +0100 Subject: [PATCH 1/2] Remove dead code Now it is impossible to call `.##()`, only `.##` is allowed. --- .../src/dotty/tools/dotc/transform/InterceptedMethods.scala | 3 --- 1 file changed, 3 deletions(-) diff --git a/compiler/src/dotty/tools/dotc/transform/InterceptedMethods.scala b/compiler/src/dotty/tools/dotc/transform/InterceptedMethods.scala index dc14acf50f03..adc50c6ccab2 100644 --- a/compiler/src/dotty/tools/dotc/transform/InterceptedMethods.scala +++ b/compiler/src/dotty/tools/dotc/transform/InterceptedMethods.scala @@ -92,11 +92,8 @@ class InterceptedMethods extends MiniPhase { } } - val Any_## = this.Any_## val Any_!= = defn.Any_!= val rewrite: Tree = tree.fun.symbol match { - case Any_## => - poundPoundValue(qual) case Any_!= => qual.select(defn.Any_==).appliedToArgs(tree.args).select(defn.Boolean_!) /* From 2fcaae2695eb78cf79fcd9776d329b572214a232 Mon Sep 17 00:00:00 2001 From: Nicolas Stucki Date: Fri, 9 Mar 2018 15:47:17 +0100 Subject: [PATCH 2/2] Remove cache for defn.Any_## --- .../src/dotty/tools/dotc/transform/InterceptedMethods.scala | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/compiler/src/dotty/tools/dotc/transform/InterceptedMethods.scala b/compiler/src/dotty/tools/dotc/transform/InterceptedMethods.scala index adc50c6ccab2..1a96fc1b0ebb 100644 --- a/compiler/src/dotty/tools/dotc/transform/InterceptedMethods.scala +++ b/compiler/src/dotty/tools/dotc/transform/InterceptedMethods.scala @@ -42,18 +42,15 @@ class InterceptedMethods extends MiniPhase { private[this] var primitiveGetClassMethods: Set[Symbol] = _ - var Any_## : Symbol = _ // cached for performance reason - /** perform context-dependant initialization */ override def prepareForUnit(tree: Tree)(implicit ctx: Context) = { - this.Any_## = defn.Any_## primitiveGetClassMethods = Set[Symbol]() ++ defn.ScalaValueClasses().map(x => x.requiredMethod(nme.getClass_)) ctx } // this should be removed if we have guarantee that ## will get Apply node override def transformSelect(tree: tpd.Select)(implicit ctx: Context): Tree = { - if (tree.symbol.isTerm && (Any_## eq tree.symbol.asTerm)) { + if (tree.symbol.isTerm && (defn.Any_## eq tree.symbol.asTerm)) { val rewrite = poundPoundValue(tree.qualifier) ctx.log(s"$phaseName rewrote $tree to $rewrite") rewrite