@@ -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 : u8 { empty=0 , identifier, expression_list, id_expression, declaration, inspect, literal };
134134 std::variant<
135135 std::monostate,
136136 token const *,
@@ -669,7 +669,7 @@ auto binary_expression_node<Name, Term>::is_standalone_expression() const
669669}
670670
671671
672- enum class passing_style { in=0 , copy, inout, out, move, forward, invalid };
672+ enum class passing_style : u8 { in=0 , copy, inout, out, move, forward, invalid };
673673auto to_passing_style (token const & t) -> passing_style {
674674 if (t.type () == lexeme::Identifier) {
675675 if (t == " in" ) { return passing_style::in; }
@@ -1179,7 +1179,7 @@ struct template_args_tag { };
11791179
11801180struct template_argument
11811181{
1182- enum active { empty=0 , expression, type_id };
1182+ enum active : u8 { empty=0 , expression, type_id };
11831183 source_position comma;
11841184 std::variant<
11851185 std::monostate,
@@ -1365,7 +1365,7 @@ struct type_id_node
13651365 int dereference_cnt = {};
13661366 token const * suspicious_initialization = {};
13671367
1368- enum active { empty=0 , qualified, unqualified, function, keyword };
1368+ enum active : u8 { empty=0 , qualified, unqualified, function, keyword };
13691369 std::variant<
13701370 std::monostate,
13711371 std::unique_ptr<qualified_id_node>,
@@ -1666,7 +1666,7 @@ struct id_expression_node
16661666{
16671667 source_position pos;
16681668
1669- enum active { empty=0 , qualified, unqualified };
1669+ enum active : u8 { empty=0 , qualified, unqualified };
16701670 std::variant<
16711671 std::monostate,
16721672 std::unique_ptr<qualified_id_node>,
@@ -2153,7 +2153,7 @@ struct statement_node
21532153 // type(s) used in a std::unique_ptr as a member
21542154 ~statement_node ();
21552155
2156- enum active { expression=0 , compound, selection, declaration, return_, iteration, using_, contract, inspect, jump };
2156+ enum active : u8 { expression=0 , compound, selection, declaration, return_, iteration, using_, contract, inspect, jump };
21572157 std::variant<
21582158 std::unique_ptr<expression_statement_node>,
21592159 std::unique_ptr<compound_statement_node>,
@@ -2281,7 +2281,7 @@ struct parameter_declaration_node
22812281 passing_style pass = passing_style::in;
22822282 int ordinal = 1 ;
22832283
2284- enum class modifier { none=0 , implicit, virtual_, override_, final_ };
2284+ enum class modifier : u8 { none=0 , implicit, virtual_, override_, final_ };
22852285 modifier mod = modifier::none;
22862286
22872287 std::unique_ptr<declaration_node> declaration;
@@ -2483,7 +2483,7 @@ struct function_type_node
24832483 passing_style pass = passing_style::move;
24842484 };
24852485
2486- enum active { empty = 0 , id, list };
2486+ enum active : u8 { empty = 0 , id, list };
24872487 std::variant<
24882488 std::monostate,
24892489 single_type_id,
@@ -2862,7 +2862,7 @@ struct alias_node
28622862 token const * type = {};
28632863 std::unique_ptr<type_id_node> type_id; // for objects
28642864
2865- enum active : std:: uint8_t { a_type, a_namespace, an_object };
2865+ enum active : u8 { a_type, a_namespace, an_object };
28662866 std::variant<
28672867 std::unique_ptr<type_id_node>,
28682868 std::unique_ptr<id_expression_node>,
@@ -2903,7 +2903,7 @@ struct alias_node
29032903};
29042904
29052905
2906- enum class accessibility { default_ = 0 , public_, protected_, private_ };
2906+ enum class accessibility : u8 { default_ = 0 , public_, protected_, private_ };
29072907
29082908auto to_string (accessibility a)
29092909 -> std::string
@@ -2932,7 +2932,7 @@ struct declaration_node
29322932 std::unique_ptr<unqualified_id_node> identifier;
29332933 accessibility access = accessibility::default_;
29342934
2935- enum active : std:: uint8_t { a_function, an_object, a_type, a_namespace, an_alias };
2935+ enum active : u8 { a_function, an_object, a_type, a_namespace, an_alias };
29362936 std::variant<
29372937 std::unique_ptr<function_type_node>,
29382938 std::unique_ptr<type_id_node>,
@@ -3353,7 +3353,7 @@ struct declaration_node
33533353 auto parent_is_polymorphic () const -> bool
33543354 { return parent_declaration && parent_declaration->is_polymorphic (); }
33553355
3356- enum which {
3356+ enum which : u8 {
33573357 functions = 1 ,
33583358 objects = 2 ,
33593359 types = 4 ,
@@ -3421,7 +3421,7 @@ struct declaration_node
34213421 {
34223422 // Convert the gather_ results to const*
34233423 auto tmp = gather_type_scope_declarations (w);
3424- return std::vector<declaration_node const *>( tmp.begin (), tmp.end ()) ;
3424+ return { tmp.begin (), tmp.end ()} ;
34253425 }
34263426
34273427
@@ -6105,7 +6105,7 @@ class parser
61056105 // Remember current position, because we may need to backtrack
61066106 auto start_pos = pos;
61076107
6108- bool inside_initializer = (
6108+ const bool inside_initializer = (
61096109 peek (-1 ) && peek (-1 )->type () == lexeme::Assignment
61106110 );
61116111 auto open_paren = &curr ();
@@ -8069,7 +8069,7 @@ class parser
80698069 )
80708070 -> std::unique_ptr<compound_statement_node>
80718071 {
8072- bool is_braced = curr ().type () == lexeme::LeftBrace;
8072+ const bool is_braced = curr ().type () == lexeme::LeftBrace;
80738073 if (
80748074 !is_braced
80758075 && !allow_single_unbraced_statement
0 commit comments