@@ -37,7 +37,7 @@ object Flags {
3737 else {
3838 val tbits = x.bits & y.bits & KINDFLAGS
3939 if (tbits == 0 )
40- assert(false , s " illegal flagset combination: $x and $y " )
40+ assert(false , s " illegal flagset combination: ${x.flagsString} and ${y.flagsString} " )
4141 FlagSet (tbits | ((x.bits | y.bits) & ~ KINDFLAGS ))
4242 }
4343
@@ -237,8 +237,8 @@ object Flags {
237237 /** A value or variable accessor (getter or setter) */
238238 val (AccessorOrSealed @ _, Accessor @ _, Sealed @ _) = newFlags(11 , " <accessor>" , " sealed" )
239239
240- /** A mutable var */
241- val (_ , Mutable @ _, _) = newFlags(12 , " mutable" )
240+ /** A mutable var, an open class */
241+ val (MutableOrOpen @ __ , Mutable @ _, Open @ _) = newFlags(12 , " mutable" , " open " )
242242
243243 /** Symbol is local to current class (i.e. private[this] or protected[this]
244244 * pre: Private or Protected are also set
@@ -422,7 +422,7 @@ object Flags {
422422 commonFlags(Private , Protected , Final , Case , Implicit , Given , Override , JavaStatic )
423423
424424 val TypeSourceModifierFlags : FlagSet =
425- CommonSourceModifierFlags .toTypeFlags | Abstract | Sealed | Opaque
425+ CommonSourceModifierFlags .toTypeFlags | Abstract | Sealed | Opaque | Open
426426
427427 val TermSourceModifierFlags : FlagSet =
428428 CommonSourceModifierFlags .toTermFlags | Inline | AbsOverride | Lazy | Erased
@@ -439,7 +439,7 @@ object Flags {
439439 val FromStartFlags : FlagSet = commonFlags(
440440 Module , Package , Deferred , Method , Case ,
441441 HigherKinded , Param , ParamAccessor ,
442- Scala2ExistentialCommon , Mutable , Opaque , Touched , JavaStatic ,
442+ Scala2ExistentialCommon , MutableOrOpen , Opaque , Touched , JavaStatic ,
443443 OuterOrCovariant , LabelOrContravariant , CaseAccessor ,
444444 Extension , NonMember , Implicit , Given , Permanent , Synthetic ,
445445 SuperAccessorOrScala2x , Inline , Macro )
@@ -509,12 +509,16 @@ object Flags {
509509 /** Flags retained in export forwarders */
510510 val RetainedExportFlags = Given | Implicit | Extension
511511
512+ /** Flags that apply only to classes */
513+ val ClassOnlyFlags = Sealed | Open | Abstract .toTypeFlags
514+
512515// ------- Other flag sets -------------------------------------
513516
514517 val AbstractFinal : FlagSet = Abstract | Final
515518 val AbstractOverride : FlagSet = Abstract | Override
516519 val AbstractSealed : FlagSet = Abstract | Sealed
517520 val AbstractOrTrait : FlagSet = Abstract | Trait
521+ val EffectivelyOpenFlags = Abstract | JavaDefined | Open | Scala2x | Trait
518522 val PrivateAccessor : FlagSet = Accessor | Private
519523 val AccessorOrSynthetic : FlagSet = Accessor | Synthetic
520524 val EnumCase : FlagSet = Case | Enum
0 commit comments