@@ -87,14 +87,17 @@ object DesugarEnums {
8787 private def enumScaffolding (implicit ctx : Context ): List [Tree ] = {
8888 def enumDefDef (name : String , select : String ) =
8989 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
98101 }
99102
100103 /** A creation method for a value of enum type `E`, which is defined as follows:
0 commit comments