aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/ConstraintHandling.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-01-13 17:20:09 +0100
committerMartin Odersky <odersky@gmail.com>2015-01-13 17:20:09 +0100
commit155049286628843eb7aeb2d8d610ac53291ea6f3 (patch)
tree1c94b473d901af58be94b2f18c9a85201095745d /src/dotty/tools/dotc/core/ConstraintHandling.scala
parent0b02ede80cfbc9c585114bb0dd51436dbf15de5f (diff)
downloaddotty-155049286628843eb7aeb2d8d610ac53291ea6f3.tar.gz
dotty-155049286628843eb7aeb2d8d610ac53291ea6f3.tar.bz2
dotty-155049286628843eb7aeb2d8d610ac53291ea6f3.zip
Added alternative TrackingConstraint
This is an alternative low-level constraint implementation.
Diffstat (limited to 'src/dotty/tools/dotc/core/ConstraintHandling.scala')
-rw-r--r--src/dotty/tools/dotc/core/ConstraintHandling.scala8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/ConstraintHandling.scala b/src/dotty/tools/dotc/core/ConstraintHandling.scala
index 264cff012..2aa2a4acd 100644
--- a/src/dotty/tools/dotc/core/ConstraintHandling.scala
+++ b/src/dotty/tools/dotc/core/ConstraintHandling.scala
@@ -146,7 +146,13 @@ trait ConstraintHandling {
/** Install bounds for param */
def install(param: PolyParam, newBounds: TypeBounds, oldBounds: TypeBounds): Unit = {
val curBounds = constraint.bounds(param)
- constraint = constraint.updated(param, newBounds)
+ try {
+ constraint = constraint.updated(param, newBounds)
+ } catch {
+ case ex: AssertionError =>
+ println(i"error while updating $param $newBounds\n$constraint")
+ throw ex
+ }
if (curBounds ne oldBounds) {
// In this case the bounds were updated previously by a recursive isSubType in
// the satisfiability check of prepare. Reapply the previously added bounds, but