aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/ConstraintRunInfo.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-01-12 12:36:45 +0100
committerMartin Odersky <odersky@gmail.com>2015-01-12 12:36:45 +0100
commit7df0423e49e81904ba703d44b0389d3a544aa946 (patch)
tree0c19deb93a0996850aed3962e87372da6619b629 /src/dotty/tools/dotc/core/ConstraintRunInfo.scala
parent9c53aaa7e3381eb684ff7eb71ab8b980cfa51abc (diff)
downloaddotty-7df0423e49e81904ba703d44b0389d3a544aa946.tar.gz
dotty-7df0423e49e81904ba703d44b0389d3a544aa946.tar.bz2
dotty-7df0423e49e81904ba703d44b0389d3a544aa946.zip
Made constraint data structures pluggable.
Factored out interface for constraints. Current implementation: NaiveConstraint. Preparing for a more efficient one.
Diffstat (limited to 'src/dotty/tools/dotc/core/ConstraintRunInfo.scala')
-rw-r--r--src/dotty/tools/dotc/core/ConstraintRunInfo.scala16
1 files changed, 16 insertions, 0 deletions
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}")
+}