From 7df0423e49e81904ba703d44b0389d3a544aa946 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Mon, 12 Jan 2015 12:36:45 +0100 Subject: Made constraint data structures pluggable. Factored out interface for constraints. Current implementation: NaiveConstraint. Preparing for a more efficient one. --- src/dotty/tools/dotc/core/ConstraintRunInfo.scala | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/dotty/tools/dotc/core/ConstraintRunInfo.scala (limited to 'src/dotty/tools/dotc/core/ConstraintRunInfo.scala') diff --git a/src/dotty/tools/dotc/core/ConstraintRunInfo.scala b/src/dotty/tools/dotc/core/ConstraintRunInfo.scala new file mode 100644 index 000000000..4b7e22653 --- /dev/null +++ b/src/dotty/tools/dotc/core/ConstraintRunInfo.scala @@ -0,0 +1,16 @@ +package dotty.tools.dotc +package core + +import Contexts._, config.Printers._ + +trait ConstraintRunInfo { self: RunInfo => + private var maxSize = 0 + private var maxConstraint: Constraint = _ + def recordConstraintSize(c: Constraint, size: Int) = + if (size > maxSize) { + maxSize = size + maxConstraint = c + } + def printMaxConstraint()(implicit ctx: Context) = + if (maxSize > 0) typr.println(s"max constraint = ${maxConstraint.show}") +} -- cgit v1.2.3