Skip to content

Commit 74a643a

Browse files
committed
Slighly faster phantom erasure checks.
1 parent 47f8b03 commit 74a643a

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

compiler/src/dotty/tools/dotc/core/Definitions.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -978,8 +978,8 @@ class Definitions {
978978
cls
979979
}
980980

981-
def isPhantomAnyClass(sym: Symbol)(implicit ctx: Context): Boolean =
982-
sym.name == tpnme.Any && (sym.owner eq PhantomClass)
981+
def isPhantomAnyOrNothingClass(sym: Symbol)(implicit ctx: Context): Boolean =
982+
(sym.name == tpnme.Any || sym.name == tpnme.Nothing) && (sym.owner eq PhantomClass)
983983

984984
def isPhantomNothingClass(sym: Symbol)(implicit ctx: Context): Boolean =
985985
sym.name == tpnme.Nothing && (sym.owner eq PhantomClass)

compiler/src/dotty/tools/dotc/core/TypeErasure.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ class TypeErasure(isJava: Boolean, semiEraseVCs: Boolean, isConstructor: Boolean
364364
else if (semiEraseVCs && isDerivedValueClass(sym)) eraseDerivedValueClassRef(tp)
365365
else if (sym == defn.ArrayClass) apply(tp.appliedTo(TypeBounds.empty)) // i966 shows that we can hit a raw Array type.
366366
else if (defn.isSyntheticFunctionClass(sym)) defn.erasedFunctionType(sym)
367-
else if (defn.isPhantomAnyClass(tp.symbol) || defn.isPhantomNothingClass(tp.symbol)) defn.ErasedPhantomType
367+
else if (defn.isPhantomAnyOrNothingClass(tp.symbol)) defn.ErasedPhantomType
368368
else eraseNormalClassRef(tp)
369369
case tp: RefinedType =>
370370
val parent = tp.parent
@@ -505,7 +505,7 @@ class TypeErasure(isJava: Boolean, semiEraseVCs: Boolean, isConstructor: Boolean
505505
}
506506
if (defn.isSyntheticFunctionClass(sym))
507507
sigName(defn.erasedFunctionType(sym))
508-
else if (defn.isPhantomAnyClass(tp.symbol) || defn.isPhantomNothingClass(tp.symbol))
508+
else if (defn.isPhantomAnyOrNothingClass(tp.symbol))
509509
sigName(defn.ErasedPhantomType)
510510
else
511511
normalizeClass(sym.asClass).fullName.asTypeName

0 commit comments

Comments
 (0)