diff options
author | Martin Odersky <odersky@gmail.com> | 2015-01-13 17:20:09 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-01-13 17:20:09 +0100 |
commit | 155049286628843eb7aeb2d8d610ac53291ea6f3 (patch) | |
tree | 1c94b473d901af58be94b2f18c9a85201095745d /src/dotty/tools/dotc/core/ConstraintHandling.scala | |
parent | 0b02ede80cfbc9c585114bb0dd51436dbf15de5f (diff) | |
download | dotty-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.scala | 8 |
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 |