jacob-carlborg / dstep

A tool for converting C and Objective-C headers to D modules
204 stars 37 forks source link

--alias-enum-members doesn't work properly for typedef enums #247

Closed ahmetsait closed 1 year ago

ahmetsait commented 4 years ago

DStep skips enum name for alias declarations when they are defined as typedefs:

typedef enum { /*< flags >*/
  HB_GLYPH_FLAG_UNSAFE_TO_BREAK     = 0x00000001,

  HB_GLYPH_FLAG_DEFINED         = 0x00000001 /* OR of all defined flags */
} hb_glyph_flags_t;

Outputs:

enum hb_glyph_flags_t
{
    /*< flags >*/
    HB_GLYPH_FLAG_UNSAFE_TO_BREAK = 0x00000001,

    HB_GLYPH_FLAG_DEFINED = 0x00000001 /* OR of all defined flags */
}

alias HB_GLYPH_FLAG_UNSAFE_TO_BREAK = .HB_GLYPH_FLAG_UNSAFE_TO_BREAK;
alias HB_GLYPH_FLAG_DEFINED = .HB_GLYPH_FLAG_DEFINED;

It should work the same as simple enums:

enum hb_glyph_flags_t { /*< flags >*/
  HB_GLYPH_FLAG_UNSAFE_TO_BREAK     = 0x00000001,

  HB_GLYPH_FLAG_DEFINED         = 0x00000001 /* OR of all defined flags */
} ;

Outputs:

enum hb_glyph_flags_t
{
    /*< flags >*/
    HB_GLYPH_FLAG_UNSAFE_TO_BREAK = 0x00000001,

    HB_GLYPH_FLAG_DEFINED = 0x00000001 /* OR of all defined flags */
}

alias HB_GLYPH_FLAG_UNSAFE_TO_BREAK = hb_glyph_flags_t.HB_GLYPH_FLAG_UNSAFE_TO_BREAK;
alias HB_GLYPH_FLAG_DEFINED = hb_glyph_flags_t.HB_GLYPH_FLAG_DEFINED;