diff options
author | Martin Odersky <odersky@gmail.com> | 2015-09-24 16:23:12 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-10-01 19:33:25 +0200 |
commit | 6288a1bb35f8167ad3ba8784fb9ac95e7fbde7e7 (patch) | |
tree | 219587cc8d431422cbe63940b08f3a58382a5dde /src/dotty/tools/dotc/core/OrderingConstraint.scala | |
parent | 3f4c6a2b63bf94526792d108eaffc761d7d19ee5 (diff) | |
download | dotty-6288a1bb35f8167ad3ba8784fb9ac95e7fbde7e7.tar.gz dotty-6288a1bb35f8167ad3ba8784fb9ac95e7fbde7e7.tar.bz2 dotty-6288a1bb35f8167ad3ba8784fb9ac95e7fbde7e7.zip |
Implement toString for OrderingConstraint
We had problems printing constraints which are ill-formed, because
the basic operations & , | cause exceptions themselves. toString
serves as a fallback if show does not work.
Diffstat (limited to 'src/dotty/tools/dotc/core/OrderingConstraint.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/OrderingConstraint.scala | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/OrderingConstraint.scala b/src/dotty/tools/dotc/core/OrderingConstraint.scala index 7e27ee628..e818862cb 100644 --- a/src/dotty/tools/dotc/core/OrderingConstraint.scala +++ b/src/dotty/tools/dotc/core/OrderingConstraint.scala @@ -129,7 +129,6 @@ class OrderingConstraint(private val boundsMap: ParamBounds, type This = OrderingConstraint - // ----------- Basic indices -------------------------------------------------- /** The number of type parameters in the given entry array */ @@ -576,4 +575,22 @@ class OrderingConstraint(private val boundsMap: ParamBounds, } Text.lines(List(header, uninstVarsText, constrainedText, boundsText, orderingText, ")")) } + + override def toString: String = { + def entryText(tp: Type): String = tp match { + case tp: TypeBounds => tp.toString + case _ =>" := " + tp + } + val constrainedText = + " constrained types = " + domainPolys.mkString("\n") + val boundsText = + " bounds = " + { + val assocs = + for (param <- domainParams) + yield + param.binder.paramNames(param.paramNum) + ": " + entryText(entry(param)) + assocs.mkString("\n") + } + constrainedText + "\n" + boundsText + } } |