@@ -130,7 +130,7 @@ struct template_argument;
130130
131131struct primary_expression_node
132132{
133- enum active { empty=0 , identifier, expression_list, id_expression, declaration, inspect, literal };
133+ enum active : std:: uint8_t { empty=0 , identifier, expression_list, id_expression, declaration, inspect, literal };
134134 std::variant<
135135 std::monostate,
136136 token const *,
@@ -666,7 +666,7 @@ auto binary_expression_node<Name, Term>::is_standalone_expression() const
666666}
667667
668668
669- enum class passing_style { in=0 , copy, inout, out, move, forward, invalid };
669+ enum class passing_style : std:: uint8_t { in=0 , copy, inout, out, move, forward, invalid };
670670auto to_passing_style (token const & t) -> passing_style {
671671 if (t.type () == lexeme::Identifier) {
672672 if (t == " in" ) { return passing_style::in; }
@@ -1152,7 +1152,7 @@ struct template_args_tag { };
11521152
11531153struct template_argument
11541154{
1155- enum active { empty=0 , expression, type_id };
1155+ enum active : std:: uint8_t { empty=0 , expression, type_id };
11561156 source_position comma;
11571157 std::variant<
11581158 std::monostate,
@@ -1338,7 +1338,7 @@ struct type_id_node
13381338 int dereference_cnt = {};
13391339 token const * suspicious_initialization = {};
13401340
1341- enum active { empty=0 , qualified, unqualified, function, keyword };
1341+ enum active : std:: uint8_t { empty=0 , qualified, unqualified, function, keyword };
13421342 std::variant<
13431343 std::monostate,
13441344 std::unique_ptr<qualified_id_node>,
@@ -1660,7 +1660,7 @@ struct id_expression_node
16601660{
16611661 source_position pos;
16621662
1663- enum active { empty=0 , qualified, unqualified };
1663+ enum active : std:: uint8_t { empty=0 , qualified, unqualified };
16641664 std::variant<
16651665 std::monostate,
16661666 std::unique_ptr<qualified_id_node>,
@@ -2147,7 +2147,7 @@ struct statement_node
21472147 // type(s) used in a std::unique_ptr as a member
21482148 ~statement_node ();
21492149
2150- enum active { expression=0 , compound, selection, declaration, return_, iteration, using_, contract, inspect, jump };
2150+ enum active : std:: uint8_t { expression=0 , compound, selection, declaration, return_, iteration, using_, contract, inspect, jump };
21512151 std::variant<
21522152 std::unique_ptr<expression_statement_node>,
21532153 std::unique_ptr<compound_statement_node>,
@@ -2275,7 +2275,7 @@ struct parameter_declaration_node
22752275 passing_style pass = passing_style::in;
22762276 int ordinal = 1 ;
22772277
2278- enum class modifier { none=0 , implicit, virtual_, override_, final_ };
2278+ enum class modifier : std:: uint8_t { none=0 , implicit, virtual_, override_, final_ };
22792279 modifier mod = modifier::none;
22802280
22812281 std::unique_ptr<declaration_node> declaration;
@@ -2446,7 +2446,7 @@ struct function_type_node
24462446 passing_style pass = passing_style::move;
24472447 };
24482448
2449- enum active { empty = 0 , id, list };
2449+ enum active : std:: uint8_t { empty = 0 , id, list };
24502450 std::variant<
24512451 std::monostate,
24522452 single_type_id,
@@ -2809,7 +2809,7 @@ struct alias_node
28092809};
28102810
28112811
2812- enum class accessibility { default_ = 0 , public_, protected_, private_ };
2812+ enum class accessibility : std:: uint8_t { default_ = 0 , public_, protected_, private_ };
28132813
28142814auto to_string (accessibility a)
28152815 -> std::string
@@ -3257,7 +3257,7 @@ struct declaration_node
32573257 auto parent_is_polymorphic () const -> bool
32583258 { return parent_declaration && parent_declaration->is_polymorphic (); }
32593259
3260- enum which {
3260+ enum which : std:: uint8_t {
32613261 functions = 1 ,
32623262 objects = 2 ,
32633263 types = 4 ,
0 commit comments