aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/TypeComparer.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/core/TypeComparer.scala')
-rw-r--r--src/dotty/tools/dotc/core/TypeComparer.scala5
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