From 80618207e1ec169178f037bfab01a2b3bbd27ebe Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sat, 24 Jan 2015 11:18:39 +0100 Subject: New constraint implementation: OrderingConstraint This is one both a bit simpler and a faster than TrackingConstraint. Main change is to replace the 2-d bitmap for ordering with two SimpleMaps which record for each parameter the smaller and greater parameters. This is faster in practice because the ordering relation is sparse. --- src/dotty/tools/dotc/core/TyperState.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/dotty/tools/dotc/core/TyperState.scala') diff --git a/src/dotty/tools/dotc/core/TyperState.scala b/src/dotty/tools/dotc/core/TyperState.scala index bdba128a9..1079af510 100644 --- a/src/dotty/tools/dotc/core/TyperState.scala +++ b/src/dotty/tools/dotc/core/TyperState.scala @@ -17,7 +17,8 @@ class TyperState(r: Reporter) extends DotClass with Showable { def reporter = r /** The current constraint set */ - def constraint: Constraint = new TrackingConstraint(SimpleMap.Empty, Array(), Array()) + def constraint: Constraint = + new OrderingConstraint(SimpleMap.Empty, SimpleMap.Empty, SimpleMap.Empty) def constraint_=(c: Constraint): Unit = {} /** The uninstantiated variables */ -- cgit v1.2.3