From 1dea9916e686adc96df9d7886346af2ed1abe45f Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Mon, 31 Oct 2016 17:33:00 +0100 Subject: Fix #1637: Future defs are always OK Drop special mode that handles future defs without which we get DenotationNotDefinedHere errors. In more than a year, this has only turned up false negatives. So I think it's better to drop the check, and the contortions needed to deal with it. --- src/dotty/tools/dotc/transform/PatternMatcher.scala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/dotty/tools/dotc/transform/PatternMatcher.scala') diff --git a/src/dotty/tools/dotc/transform/PatternMatcher.scala b/src/dotty/tools/dotc/transform/PatternMatcher.scala index 8636d5084..3e25cf82e 100644 --- a/src/dotty/tools/dotc/transform/PatternMatcher.scala +++ b/src/dotty/tools/dotc/transform/PatternMatcher.scala @@ -604,9 +604,8 @@ class PatternMatcher extends MiniPhaseTransform with DenotTransformer { // all potentially stored subpat binders val potentiallyStoredBinders = stored.unzip._1.toSet // compute intersection of all symbols in the tree `in` and all potentially stored subpat binders - def computeBinders(implicit ctx: Context) = new DeepFolder[Unit]((x: Unit, t:Tree) => + new DeepFolder[Unit]((x: Unit, t: Tree) => if (potentiallyStoredBinders(t.symbol)) usedBinders += t.symbol).apply((), in) - computeBinders(ctx.addMode(Mode.FutureDefsOK)) // trigged a NotDefinedHere on $outer when compiler dotc/printing if (usedBinders.isEmpty) in else { -- cgit v1.2.3