From fbe4171404ac56a0fe8e6d54fa06bbd53e85bd97 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sun, 18 Jan 2015 18:35:02 +0100 Subject: New constraint handling New constraint handling scheme using constraints that distinguish more between parameter and non-parameter bounds and which track parameter bounds separately. This allows a co-inductive formulation of satisfiability checking without fishy cyclicity checks. It should also scale better for long chains of dependent type variables. --- src/dotty/tools/dotc/core/Constants.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/dotty/tools/dotc/core/Constants.scala') diff --git a/src/dotty/tools/dotc/core/Constants.scala b/src/dotty/tools/dotc/core/Constants.scala index 48c832c4b..61a23bb9e 100644 --- a/src/dotty/tools/dotc/core/Constants.scala +++ b/src/dotty/tools/dotc/core/Constants.scala @@ -169,7 +169,7 @@ object Constants { def convertTo(pt: Type)(implicit ctx: Context): Constant = { def lowerBound(pt: Type): Type = pt.dealias.stripTypeVar match { case tref: TypeRef if !tref.symbol.isClass => lowerBound(tref.info.bounds.lo) - case param: PolyParam => lowerBound(ctx.typeComparer.bounds(param).lo) + case param: PolyParam => lowerBound(ctx.typerState.constraint.nonParamBounds(param).lo) case pt => pt } val target = lowerBound(pt).typeSymbol -- cgit v1.2.3