Re: [PATCH 4/8] builtin/config: collect "value_regexp" data in a struct
From: Junio C Hamano <hidden>
Date: 2019-11-22 06:30:50
Martin Ågren [off-list ref] writes:
quoted
quoted
+static struct { + enum { none, regexp } mode;We often use the same identifier for a struct and an instance of the struct, taking advantage of the fact that they live in separate namespaces, but lowercase enumerated values like 'regexp' that collides with the field name (and possibly a variable name used elsewhere) smells a bit too much.Ok, thanks for sanity-checking.quoted
quoted
+ regex_t *regexp; + int do_not_match; /* used with `regexp` */ +} cmd_line_value;
I _might_ want to take this back. A pattern that uses the "mode" to
switch among the possibilities in a union, i.e.
struct {
enum {
<something>_none,
<something>_regexp,
<something>_bool,
<something>_int,
} mode;
union {
<type-used-when-it-is-regexp> regexp;
<type-used-when-it-is-bool> bool;
<type-used-when-it-is-int> int;
} u;
};
may not be too bad. So I do not strongly mind the lowercase.
But I still do mind an overly bland names for identifiers in an
enum, as enum is not quite a type on its own ('regexp' in one enum
may collide with the same identifier in another enum)..
Thanks.