diff options
author | Martin Odersky <odersky@gmail.com> | 2013-11-22 13:42:09 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-11-22 13:42:09 +0100 |
commit | b14291436172bf53cb40fdd2e94491e36a7da115 (patch) | |
tree | 67bb0321df0960ba283fc685b0233f0cebaa145c /src/dotty/tools/dotc/core/Constraint.scala | |
parent | e38813ac1362a1d528dfa1ee79f0f8b0d6f7ccb8 (diff) | |
download | dotty-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.scala | 12 |
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 { |