@@ -87,14 +87,17 @@ object DesugarEnums {
87
87
private def enumScaffolding (implicit ctx : Context ): List [Tree ] = {
88
88
def enumDefDef (name : String , select : String ) =
89
89
DefDef (name.toTermName, Nil , Nil , TypeTree (), valuesDot(select))
90
- val privateValuesDef =
91
- ValDef (nme.DOLLAR_VALUES , TypeTree (),
92
- New (TypeTree (defn.EnumValuesType .appliedTo(enumClass.typeRef :: Nil )), ListOfNil ))
93
- .withFlags(Private )
94
- val valueOfDef = enumDefDef(" enumValue" , " fromInt" )
95
- val withNameDef = enumDefDef(" enumValueNamed" , " fromName" )
96
- val valuesDef = enumDefDef(" enumValues" , " values" )
97
- List (privateValuesDef, valueOfDef, withNameDef, valuesDef)
90
+
91
+ if (enumClass.exists) {
92
+ val privateValuesDef =
93
+ ValDef (nme.DOLLAR_VALUES , TypeTree (),
94
+ New (TypeTree (defn.EnumValuesType .appliedTo(enumClass.typeRef :: Nil )), ListOfNil ))
95
+ .withFlags(Private )
96
+ val valueOfDef = enumDefDef(" enumValue" , " fromInt" )
97
+ val withNameDef = enumDefDef(" enumValueNamed" , " fromName" )
98
+ val valuesDef = enumDefDef(" enumValues" , " values" )
99
+ List (privateValuesDef, valueOfDef, withNameDef, valuesDef)
100
+ } else List .empty
98
101
}
99
102
100
103
/** A creation method for a value of enum type `E`, which is defined as follows:
0 commit comments