@@ -13944,7 +13944,9 @@ parse_parameters(
1394413944 pm_parameters_node_block_set(params, param);
1394513945 } else {
1394613946 pm_parser_err_node(parser, UP(param), PM_ERR_PARAMETER_BLOCK_MULTI);
13947- pm_parameters_node_posts_append(params, UP(param));
13947+ pm_node_t *post_param = UP(param);
13948+ PM_VALIDATE_NODE_TYPE(parser, post_param, PM_REQUIRED_PARAMETER_NODE, PM_MULTI_TARGET_NODE);
13949+ pm_parameters_node_posts_append(params, post_param);
1394813950 }
1394913951
1395013952 break;
@@ -13964,6 +13966,7 @@ parse_parameters(
1396413966 // If we already have a keyword rest parameter, then we replace it with the
1396513967 // forwarding parameter and move the keyword rest parameter to the posts list.
1396613968 pm_node_t *keyword_rest = params->keyword_rest;
13969+ PM_VALIDATE_NODE_TYPE(parser, keyword_rest, PM_REQUIRED_PARAMETER_NODE, PM_MULTI_TARGET_NODE);
1396713970 pm_parameters_node_posts_append(params, keyword_rest);
1396813971 if (succeeded) pm_parser_err_previous(parser, PM_ERR_PARAMETER_UNEXPECTED_FWD);
1396913972 params->keyword_rest = NULL;
@@ -14178,6 +14181,7 @@ parse_parameters(
1417814181 pm_parameters_node_rest_set(params, param);
1417914182 } else {
1418014183 pm_parser_err_node(parser, param, PM_ERR_PARAMETER_SPLAT_MULTI);
14184+ PM_VALIDATE_NODE_TYPE(parser, param, PM_REQUIRED_PARAMETER_NODE, PM_MULTI_TARGET_NODE);
1418114185 pm_parameters_node_posts_append(params, param);
1418214186 }
1418314187
@@ -14221,6 +14225,7 @@ parse_parameters(
1422114225 pm_parameters_node_keyword_rest_set(params, param);
1422214226 } else {
1422314227 pm_parser_err_node(parser, param, PM_ERR_PARAMETER_ASSOC_SPLAT_MULTI);
14228+ PM_VALIDATE_NODE_TYPE(parser, param, PM_REQUIRED_PARAMETER_NODE, PM_MULTI_TARGET_NODE);
1422414229 pm_parameters_node_posts_append(params, param);
1422514230 }
1422614231
@@ -14236,8 +14241,9 @@ parse_parameters(
1423614241 if (params->rest == NULL) {
1423714242 pm_parameters_node_rest_set(params, param);
1423814243 } else {
14239- pm_parser_err_node(parser, UP(param), PM_ERR_PARAMETER_SPLAT_MULTI);
14240- pm_parameters_node_posts_append(params, UP(param));
14244+ pm_parser_err_node(parser, param, PM_ERR_PARAMETER_SPLAT_MULTI);
14245+ PM_VALIDATE_NODE_TYPE(parser, param, PM_REQUIRED_PARAMETER_NODE, PM_MULTI_TARGET_NODE);
14246+ pm_parameters_node_posts_append(params, param);
1424114247 }
1424214248 } else {
1424314249 pm_parser_err_previous(parser, PM_ERR_PARAMETER_WILD_LOOSE_COMMA);
0 commit comments