From 11583b81538fdf83f8ccdcdc5781776b4d6bb447 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Thu, 5 Mar 2020 10:35:26 +0100 Subject: [PATCH] Refine atoms computation on intersection types --- compiler/src/dotty/tools/dotc/core/Atoms.scala | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/src/dotty/tools/dotc/core/Atoms.scala b/compiler/src/dotty/tools/dotc/core/Atoms.scala index 951ed1bc2205..bcaaf6794107 100644 --- a/compiler/src/dotty/tools/dotc/core/Atoms.scala +++ b/compiler/src/dotty/tools/dotc/core/Atoms.scala @@ -20,8 +20,11 @@ enum Atoms: case Range(lo1, hi1) => that match case Range(lo2, hi2) => Range(lo1 & lo2, hi1 & hi2) - case Unknown => this - case Unknown => that + case Unknown => Range(Set.empty, hi1) + case Unknown => + that match + case Range(lo2, hi2) => Range(Set.empty, hi2) + case Unknown => Unknown def | (that: Atoms): Atoms = this match case Range(lo1, hi1) =>