Skip to content

Commit aa2c63c

Browse files
committed
Re-use Enum flag for Scala enums
1 parent ee5bfed commit aa2c63c

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

compiler/src/dotty/tools/dotc/ast/untpd.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ object untpd extends Trees.Instance[Untyped] with UntypedTreeInfo {
132132

133133
case class Inline() extends Mod(Flags.Inline)
134134

135-
case class Enum() extends Mod(Flags.EmptyFlags)
135+
case class Enum() extends Mod(Flags.Enum)
136136
}
137137

138138
/** Modifiers and annotations for definitions
@@ -191,8 +191,10 @@ object untpd extends Trees.Instance[Untyped] with UntypedTreeInfo {
191191
mods.exists(mod => cls.isAssignableFrom(mod.getClass))
192192
}
193193

194-
def isEnumCase = hasMod[Mod.Enum] && is(Case)
195-
def isEnumClass = hasMod[Mod.Enum] && !is(Case)
194+
private def isEnum = hasMod[Mod.Enum] || is(Enum, butNot = JavaDefined)
195+
196+
def isEnumCase = isEnum && is(Case)
197+
def isEnumClass = isEnum && !is(Case)
196198
}
197199

198200
@sharable val EmptyModifiers: Modifiers = new Modifiers()

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,9 @@ object Flags {
563563
/** An inline parameter */
564564
final val InlineParam = allOf(Inline, Param)
565565

566+
/** An enum case */
567+
final val EnumCase = allOf(Enum, Case)
568+
566569
/** A term parameter or parameter accessor */
567570
final val TermParamOrAccessor = Param | ParamAccessor
568571

0 commit comments

Comments
 (0)