File tree Expand file tree Collapse file tree 1 file changed +5
-1
lines changed
compiler/src/dotty/tools/dotc/core Expand file tree Collapse file tree 1 file changed +5
-1
lines changed Original file line number Diff line number Diff line change @@ -5886,14 +5886,18 @@ object Types {
58865886 if (distributeArgs(args, tp.tyconTypeParams))
58875887 range(tp.derivedAppliedType(tycon, loBuf.toList),
58885888 tp.derivedAppliedType(tycon, hiBuf.toList))
5889- else if tycon.isLambdaSub then
5889+ else if tycon.isLambdaSub || args.exists(isRangeOfNonTermTypes) then
58905890 range(defn.NothingType , defn.AnyType )
58915891 else
58925892 // See lampepfl/dotty#14152
58935893 range(defn.NothingType , tp.derivedAppliedType(tycon, args.map(rangeToBounds)))
58945894 else tp.derivedAppliedType(tycon, args)
58955895 }
58965896
5897+ private def isRangeOfNonTermTypes (tp : Type ): Boolean = tp match
5898+ case Range (lo, hi) => ! lo.isInstanceOf [TermType ] || ! hi.isInstanceOf [TermType ]
5899+ case _ => false
5900+
58975901 override protected def derivedAndType (tp : AndType , tp1 : Type , tp2 : Type ): Type =
58985902 if (isRange(tp1) || isRange(tp2)) range(lower(tp1) & lower(tp2), upper(tp1) & upper(tp2))
58995903 else tp.derivedAndType(tp1, tp2)
You can’t perform that action at this time.
0 commit comments