From 6288a1bb35f8167ad3ba8784fb9ac95e7fbde7e7 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Thu, 24 Sep 2015 16:23:12 +0200 Subject: 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. --- src/dotty/tools/dotc/core/OrderingConstraint.scala | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/dotty/tools/dotc/core/OrderingConstraint.scala') 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 + } } -- cgit v1.2.3