aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/core/SymDenotations.scala20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/dotty/tools/dotc/core/SymDenotations.scala b/src/dotty/tools/dotc/core/SymDenotations.scala
index e9aeb286a..62262db93 100644
--- a/src/dotty/tools/dotc/core/SymDenotations.scala
+++ b/src/dotty/tools/dotc/core/SymDenotations.scala
@@ -843,18 +843,22 @@ object SymDenotations {
}
/** A bitset that contains the superId's of all base classes */
- private def superClassBits(implicit ctx: Context): BitSet = {
- if (mySuperClassBits == null) computeBases
- mySuperClassBits
- }
+ private def superClassBits(implicit ctx: Context): BitSet =
+ if (classParents.isEmpty) BitSet() // can happen when called too early in Namers
+ else {
+ if (mySuperClassBits == null) computeBases
+ mySuperClassBits
+ }
/** The base classes of this class in linearization order,
* with the class itself as first element.
*/
- def baseClasses(implicit ctx: Context): List[ClassSymbol] = {
- if (myBaseClasses == null) computeBases
- myBaseClasses
- }
+ def baseClasses(implicit ctx: Context): List[ClassSymbol] =
+ if (classParents.isEmpty) classSymbol :: Nil // can happen when called too early in Namers
+ else {
+ if (myBaseClasses == null) computeBases
+ myBaseClasses
+ }
final override def derivesFrom(base: Symbol)(implicit ctx: Context): Boolean =
!isAbsent &&