Could we make enums work the way structs do in importC?
For example (example2d.d):
import example2;
void main() {
my_struct param;
my_enum eopt;
//param.opts = A; // not okay
someFunc(param);
someFunc2(param.opts); // okay
someFunc2(eopt); // not okay
}
Error is:
example2d.d(10): Error: function `example2.someFunc2(__tag3 evalue)` is not callable using argument types `(__anonymous)`
example2d.d(10): cannot pass argument `eopt` of type `__anonymous` to parameter `__tag3 evalue`
example2.c:
int printf(const char *format, ...);
typedef enum {
A = 1,
B = 1 << 1,
} my_enum;
typedef struct {
int i;
my_enum opts;
} my_struct;
void someFunc(my_struct s) {
printf("okay\n");
}
void someFunc2(my_enum evalue) {
printf("okay2\n");
}
// void main() {
// my_struct param;
// my_enum eopt;
// param.opts = A; // okay
// someFunc(param);
// someFunc2(param.opts); // okay
// someFunc2(eopt); // okay
// }