diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/opt/Inliners.scala | 4 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Types.scala | 1 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Analyzer.scala | 2 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala b/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala index acb4274cb2..0db14d5e59 100644 --- a/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala +++ b/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala @@ -237,8 +237,8 @@ abstract class Inliners extends SubComponent { } private def isMonadicMethod(sym: Symbol) = sym.name match { - case nme.foreach | nme.filter | nme.map | nme.flatMap => true - case _ => false + case nme.foreach | nme.filter | nme.withFilter | nme.map | nme.flatMap => true + case _ => false } private def isHigherOrderMethod(sym: Symbol) = sym.isMethod && atPhase(currentRun.erasurePhase.prev)(sym.info.paramTypes exists isFunctionType) diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala index 5f5c1bfb90..42cbcdd4eb 100644 --- a/src/compiler/scala/tools/nsc/symtab/Types.scala +++ b/src/compiler/scala/tools/nsc/symtab/Types.scala @@ -103,6 +103,7 @@ trait Types extends reflect.generic.Types { self: SymbolTable => object undoLog { private type UndoLog = List[(TypeVar, TypeConstraint)] private[nsc] var log: UndoLog = List() + private[nsc] def size() = log.size /** Undo all changes to constraints to type variables upto `limit' */ diff --git a/src/compiler/scala/tools/nsc/typechecker/Analyzer.scala b/src/compiler/scala/tools/nsc/typechecker/Analyzer.scala index 56f1fd4c53..6e969d07a4 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Analyzer.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Analyzer.scala @@ -84,6 +84,8 @@ trait Analyzer extends AnyRef val start = startTimer(typerNanos) global.echoPhaseSummary(this) currentRun.units foreach applyPhase + if (global.opt.debug) + log("Clearing " + undoLog.size() + " entries from the undoLog.") undoLog.clear() // need to clear it after as well or 10K+ accumulated entries are // uncollectable the rest of the way. |