aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Constraint.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-11-22 13:42:09 +0100
committerMartin Odersky <odersky@gmail.com>2013-11-22 13:42:09 +0100
commitb14291436172bf53cb40fdd2e94491e36a7da115 (patch)
tree67bb0321df0960ba283fc685b0233f0cebaa145c /src/dotty/tools/dotc/core/Constraint.scala
parente38813ac1362a1d528dfa1ee79f0f8b0d6f7ccb8 (diff)
downloaddotty-b14291436172bf53cb40fdd2e94491e36a7da115.tar.gz
dotty-b14291436172bf53cb40fdd2e94491e36a7da115.tar.bz2
dotty-b14291436172bf53cb40fdd2e94491e36a7da115.zip
Dropping cinsistency checking logic from typerstates.
Because of the new typerstate design, we can enforce most invariants by design, or in a purely local manner. We can therefore drop the checkConsistent checks and replace them with much more lightweight assertions that make sure that only committable states are committed and only committable states can create typevars.
Diffstat (limited to 'src/dotty/tools/dotc/core/Constraint.scala')
-rw-r--r--src/dotty/tools/dotc/core/Constraint.scala12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/core/Constraint.scala b/src/dotty/tools/dotc/core/Constraint.scala
index 8ffdce71c..bee21d499 100644
--- a/src/dotty/tools/dotc/core/Constraint.scala
+++ b/src/dotty/tools/dotc/core/Constraint.scala
@@ -198,8 +198,16 @@ class Constraint(val myMap: SimpleMap[PolyType, Array[Type]]) extends AnyVal wit
Text(assocs, "\n")
}
- override def toText(printer: Printer): Text =
- "Constraint(" ~ constrainedTypesText(printer) ~ ") {" ~ constraintText(2, printer) ~ "}"
+ override def toText(printer: Printer): Text = {
+ val header: Text = "Constraint("
+ val uninstVarsText = " uninstVars = " ~
+ Text(uninstVars map (_.toText(printer)), ", ") ~ ";"
+ val constrainedText =
+ " constrained types = " ~ constrainedTypesText(printer) ~ ";"
+ val constraintsText =
+ " constraint = " ~ constraintText(3, printer) ~ ")"
+ Text.lines(List(header, uninstVarsText, constrainedText, constraintsText))
+ }
}
object Constraint {