@@ -22,6 +22,7 @@ pm_version(void) {
2222/* Helpful node-related macros */
2323/******************************************************************************/
2424
25+ #define FL PM_NODE_FLAGS
2526#define UP PM_NODE_UPCAST
2627
2728#define PM_TOKEN_START(token_) ((token_)->start)
@@ -2845,7 +2846,7 @@ pm_call_and_write_node_create(pm_parser_t *parser, pm_call_node_t *target, const
28452846 pm_call_and_write_node_t *node = PM_NODE_ALLOC(parser, pm_call_and_write_node_t);
28462847
28472848 *node = (pm_call_and_write_node_t) {
2848- .base = PM_NODE_INIT_NODES(parser, PM_CALL_AND_WRITE_NODE, target->base.flags , target, value),
2849+ .base = PM_NODE_INIT_NODES(parser, PM_CALL_AND_WRITE_NODE, FL( target) , target, value),
28492850 .receiver = target->receiver,
28502851 .call_operator_loc = target->call_operator_loc,
28512852 .message_loc = target->message_loc,
@@ -2900,7 +2901,7 @@ pm_index_and_write_node_create(pm_parser_t *parser, pm_call_node_t *target, cons
29002901
29012902 assert(!target->block || PM_NODE_TYPE_P(target->block, PM_BLOCK_ARGUMENT_NODE));
29022903 *node = (pm_index_and_write_node_t) {
2903- .base = PM_NODE_INIT_NODES(parser, PM_INDEX_AND_WRITE_NODE, target->base.flags , target, value),
2904+ .base = PM_NODE_INIT_NODES(parser, PM_INDEX_AND_WRITE_NODE, FL( target) , target, value),
29042905 .receiver = target->receiver,
29052906 .call_operator_loc = target->call_operator_loc,
29062907 .opening_loc = target->opening_loc,
@@ -2928,7 +2929,7 @@ pm_call_operator_write_node_create(pm_parser_t *parser, pm_call_node_t *target,
29282929 pm_call_operator_write_node_t *node = PM_NODE_ALLOC(parser, pm_call_operator_write_node_t);
29292930
29302931 *node = (pm_call_operator_write_node_t) {
2931- .base = PM_NODE_INIT_NODES(parser, PM_CALL_OPERATOR_WRITE_NODE, target->base.flags , target, value),
2932+ .base = PM_NODE_INIT_NODES(parser, PM_CALL_OPERATOR_WRITE_NODE, FL( target) , target, value),
29322933 .receiver = target->receiver,
29332934 .call_operator_loc = target->call_operator_loc,
29342935 .message_loc = target->message_loc,
@@ -2960,7 +2961,7 @@ pm_index_operator_write_node_create(pm_parser_t *parser, pm_call_node_t *target,
29602961
29612962 assert(!target->block || PM_NODE_TYPE_P(target->block, PM_BLOCK_ARGUMENT_NODE));
29622963 *node = (pm_index_operator_write_node_t) {
2963- .base = PM_NODE_INIT_NODES(parser, PM_INDEX_OPERATOR_WRITE_NODE, target->base.flags , target, value),
2964+ .base = PM_NODE_INIT_NODES(parser, PM_INDEX_OPERATOR_WRITE_NODE, FL( target) , target, value),
29642965 .receiver = target->receiver,
29652966 .call_operator_loc = target->call_operator_loc,
29662967 .opening_loc = target->opening_loc,
@@ -2990,7 +2991,7 @@ pm_call_or_write_node_create(pm_parser_t *parser, pm_call_node_t *target, const
29902991 pm_call_or_write_node_t *node = PM_NODE_ALLOC(parser, pm_call_or_write_node_t);
29912992
29922993 *node = (pm_call_or_write_node_t) {
2993- .base = PM_NODE_INIT_NODES(parser, PM_CALL_OR_WRITE_NODE, target->base.flags , target, value),
2994+ .base = PM_NODE_INIT_NODES(parser, PM_CALL_OR_WRITE_NODE, FL( target) , target, value),
29942995 .receiver = target->receiver,
29952996 .call_operator_loc = target->call_operator_loc,
29962997 .message_loc = target->message_loc,
@@ -3022,7 +3023,7 @@ pm_index_or_write_node_create(pm_parser_t *parser, pm_call_node_t *target, const
30223023
30233024 assert(!target->block || PM_NODE_TYPE_P(target->block, PM_BLOCK_ARGUMENT_NODE));
30243025 *node = (pm_index_or_write_node_t) {
3025- .base = PM_NODE_INIT_NODES(parser, PM_INDEX_OR_WRITE_NODE, target->base.flags , target, value),
3026+ .base = PM_NODE_INIT_NODES(parser, PM_INDEX_OR_WRITE_NODE, FL( target) , target, value),
30263027 .receiver = target->receiver,
30273028 .call_operator_loc = target->call_operator_loc,
30283029 .opening_loc = target->opening_loc,
@@ -3050,7 +3051,7 @@ pm_call_target_node_create(pm_parser_t *parser, pm_call_node_t *target) {
30503051 pm_call_target_node_t *node = PM_NODE_ALLOC(parser, pm_call_target_node_t);
30513052
30523053 *node = (pm_call_target_node_t) {
3053- .base = PM_NODE_INIT_NODE(parser, PM_CALL_TARGET_NODE, target->base.flags , target),
3054+ .base = PM_NODE_INIT_NODE(parser, PM_CALL_TARGET_NODE, FL( target) , target),
30543055 .receiver = target->receiver,
30553056 .call_operator_loc = target->call_operator_loc,
30563057 .name = target->name,
@@ -3072,13 +3073,12 @@ pm_call_target_node_create(pm_parser_t *parser, pm_call_node_t *target) {
30723073static pm_index_target_node_t *
30733074pm_index_target_node_create(pm_parser_t *parser, pm_call_node_t *target) {
30743075 pm_index_target_node_t *node = PM_NODE_ALLOC(parser, pm_index_target_node_t);
3075- pm_node_flags_t flags = target->base.flags;
30763076
30773077 pm_index_arguments_check(parser, target->arguments, target->block);
3078-
30793078 assert(!target->block || PM_NODE_TYPE_P(target->block, PM_BLOCK_ARGUMENT_NODE));
3079+
30803080 *node = (pm_index_target_node_t) {
3081- .base = PM_NODE_INIT_NODE(parser, PM_INDEX_TARGET_NODE, flags | PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE, target),
3081+ .base = PM_NODE_INIT_NODE(parser, PM_INDEX_TARGET_NODE, FL(target) | PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE, target),
30823082 .receiver = target->receiver,
30833083 .opening_loc = target->opening_loc,
30843084 .arguments = target->arguments,
@@ -4745,10 +4745,10 @@ pm_interpolated_regular_expression_node_closing_set(pm_parser_t *parser, pm_inte
47454745static inline void
47464746pm_interpolated_string_node_append(pm_interpolated_string_node_t *node, pm_node_t *part) {
47474747#define CLEAR_FLAGS(node) \
4748- node->base.flags = (pm_node_flags_t) (node->base.flags & ~(PM_NODE_FLAG_STATIC_LITERAL | PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN | PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE))
4748+ node->base.flags = (pm_node_flags_t) (FL( node) & ~(PM_NODE_FLAG_STATIC_LITERAL | PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN | PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE))
47494749
47504750#define MUTABLE_FLAGS(node) \
4751- node->base.flags = (pm_node_flags_t) ((node->base.flags | PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE) & ~PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN);
4751+ node->base.flags = (pm_node_flags_t) ((FL( node) | PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE) & ~PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN);
47524752
47534753 if (node->parts.size == 0 && node->opening_loc.start == NULL) {
47544754 node->base.location.start = part->location.start;
@@ -19674,7 +19674,7 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, b
1967419674 parse_regular_expression_errors(parser, node);
1967519675 }
1967619676
19677- pm_node_flag_set(UP(node), parse_and_validate_regular_expression_encoding(parser, &unescaped, ascii_only, node->base.flags ));
19677+ pm_node_flag_set(UP(node), parse_and_validate_regular_expression_encoding(parser, &unescaped, ascii_only, FL( node) ));
1967819678 return UP(node);
1967919679 }
1968019680
0 commit comments