diff options
Diffstat (limited to 'src/dotty/tools/dotc/core/TypeComparer.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/TypeComparer.scala | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/core/TypeComparer.scala b/src/dotty/tools/dotc/core/TypeComparer.scala index a4d96019e..a796d7e43 100644 --- a/src/dotty/tools/dotc/core/TypeComparer.scala +++ b/src/dotty/tools/dotc/core/TypeComparer.scala @@ -56,8 +56,9 @@ class TypeComparer(initctx: Context) extends DotClass { val pnum = param.paramNum val oldEntries = constraint(pt) val oldBounds = oldEntries(pnum).asInstanceOf[TypeBounds] - val constrBounds = if (fromBelow) TypeBounds.lower(bound) else TypeBounds.upper(bound) - val newBounds = oldBounds & constrBounds + val newBounds = + if (fromBelow) oldBounds.derivedTypeBounds(oldBounds.lo | bound, oldBounds.hi) + else oldBounds.derivedTypeBounds(oldBounds.lo, oldBounds.hi & bound) if (oldBounds ne newBounds) { val newEntries = oldEntries.clone newEntries(pnum) = newBounds |