nameExpr is Mango decl is Mango: const instance of enum Fruits newExpr is Variable Expression: Mango: const instance of enum Fruits alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: Mango: const instance of enum Fruits (types: const lvalue instance of enum Fruits ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Variable Expression: Mango: const instance of enum Fruits to: instance of enum Fruits (types: instance of enum Fruits ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination enum Colors { __Red__C7eColors, __Yellow__C7eColors, __Pink__C7eColors, __Blue__C7eColors, __Purple__C7eColors, __Orange__C7eColors, __Green__C7eColors, } ; void __f__F__(void){ enum Fruits { __Apple__C7eFruits, __Banana__C7eFruits, __Pear__C7eFruits, __Mango__C7eFruits, } ; enum Fruits __fruit__7eFruits = ((enum Fruits )__Mango__C7eFruits); }