diff options
Diffstat (limited to 'src/dotty')
-rw-r--r-- | src/dotty/tools/dotc/transform/IsInstanceOfEvaluator.scala | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/dotty/tools/dotc/transform/IsInstanceOfEvaluator.scala b/src/dotty/tools/dotc/transform/IsInstanceOfEvaluator.scala index 584628acd..6765604c8 100644 --- a/src/dotty/tools/dotc/transform/IsInstanceOfEvaluator.scala +++ b/src/dotty/tools/dotc/transform/IsInstanceOfEvaluator.scala @@ -91,16 +91,13 @@ class IsInstanceOfEvaluator extends MiniPhaseTransform { thisTransformer => * * `scrutinee.isInstanceOf[Selector]` if `scrutinee eq null` */ - def rewrite(tree: Select, to: Boolean): Tree = { - val expr = - if (!to || !tree.qualifier.tpe.widen.derivesFrom(defn.AnyRefAlias)) - Literal(Constant(to)) - else - Apply(tree.qualifier.select(defn.Object_ne), List(Literal(Constant(null)))) - - if (!isPureExpr(tree.qualifier)) Block(List(tree.qualifier), expr) - else expr - } + def rewrite(tree: Select, to: Boolean): Tree = + if (!to || !tree.qualifier.tpe.widen.derivesFrom(defn.AnyRefAlias)) { + val literal = Literal(Constant(to)) + if (!isPureExpr(tree.qualifier)) Block(List(tree.qualifier), literal) + else literal + } else + Apply(tree.qualifier.select(defn.Object_ne), List(Literal(Constant(null)))) /** Attempts to rewrite TypeApply to either `scrutinee ne null` or a * constant |