summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Patterson <[email protected]>2024-01-09 11:53:47 -0800
committergit <[email protected]>2024-01-10 15:24:26 +0000
commitf165fa09e7bc36f90d3862e537f071f0e1339428 (patch)
tree95869b076b5efd2c31c710a5dc849283af637c38
parent881c5a1846c220662a4ad49208a28fe0287b3c58 (diff)
[ruby/prism] address feedback
https://github.com/ruby/prism/commit/ed183ad30c
-rw-r--r--prism/prism.c28
1 files changed, 13 insertions, 15 deletions
diff --git a/prism/prism.c b/prism/prism.c
index 73a35c4d46..05405a4097 100644
--- a/prism/prism.c
+++ b/prism/prism.c
@@ -892,21 +892,16 @@ pm_node_flag_unset(pm_node_t *node, pm_node_flags_t flag) {
*/
static inline void
pm_node_flag_set_repeated_parameter(pm_node_t *node) {
- switch (PM_NODE_TYPE(node)) {
- case PM_BLOCK_LOCAL_VARIABLE_NODE:
- case PM_BLOCK_PARAMETER_NODE:
- case PM_KEYWORD_REST_PARAMETER_NODE:
- case PM_OPTIONAL_KEYWORD_PARAMETER_NODE:
- case PM_OPTIONAL_PARAMETER_NODE:
- case PM_REQUIRED_KEYWORD_PARAMETER_NODE:
- case PM_REQUIRED_PARAMETER_NODE:
- case PM_REST_PARAMETER_NODE:
- pm_node_flag_set(node, PM_PARAMETER_FLAGS_REPEATED_PARAMETER);
- break;
- default:
- fprintf(stderr, "unhandled type %d\n", PM_NODE_TYPE(node));
- abort();
- };
+ assert(PM_NODE_TYPE(node) == PM_BLOCK_LOCAL_VARIABLE_NODE ||
+ PM_NODE_TYPE(node) == PM_BLOCK_PARAMETER_NODE ||
+ PM_NODE_TYPE(node) == PM_KEYWORD_REST_PARAMETER_NODE ||
+ PM_NODE_TYPE(node) == PM_OPTIONAL_KEYWORD_PARAMETER_NODE ||
+ PM_NODE_TYPE(node) == PM_OPTIONAL_PARAMETER_NODE ||
+ PM_NODE_TYPE(node) == PM_REQUIRED_KEYWORD_PARAMETER_NODE ||
+ PM_NODE_TYPE(node) == PM_REQUIRED_PARAMETER_NODE ||
+ PM_NODE_TYPE(node) == PM_REST_PARAMETER_NODE);
+
+ pm_node_flag_set(node, PM_PARAMETER_FLAGS_REPEATED_PARAMETER);
}
/******************************************************************************/
@@ -6016,6 +6011,9 @@ pm_parser_local_add_owned(pm_parser_t *parser, const uint8_t *start, size_t leng
/**
* Add a parameter name to the current scope and check whether the name of the
* parameter is unique or not.
+ *
+ * Returns `true` if this is a duplicate parameter name, otherwise returns
+ * false.
*/
static bool
pm_parser_parameter_name_check(pm_parser_t *parser, const pm_token_t *name) {