summaryrefslogtreecommitdiff
path: root/rubyparser.h
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2023-10-30 00:19:43 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2023-10-30 00:19:43 +0900
commit13c9cbe09ef310c7ddf055d57ebf4586e9f9a111 (patch)
tree1edb88744db0cb8d95b7d0d3e2dc045751a68fc4 /rubyparser.h
parentfbd55120f3c58dc7d16b3870a8f36f07277bb338 (diff)
Embed `rb_args_info` in `rb_node_args_t`
Diffstat (limited to 'rubyparser.h')
-rw-r--r--rubyparser.h44
1 files changed, 22 insertions, 22 deletions
diff --git a/rubyparser.h b/rubyparser.h
index bee6769396..d366227318 100644
--- a/rubyparser.h
+++ b/rubyparser.h
@@ -667,10 +667,31 @@ typedef struct RNode_ONCE {
struct RNode *nd_body;
} rb_node_once_t;
+struct rb_args_info {
+ NODE *pre_init;
+ NODE *post_init;
+
+ int pre_args_num; /* count of mandatory pre-arguments */
+ int post_args_num; /* count of mandatory post-arguments */
+
+ ID first_post_arg;
+
+ ID rest_arg;
+ ID block_arg;
+
+ struct RNode_KW_ARG *kw_args;
+ NODE *kw_rest_arg;
+
+ struct RNode_OPT_ARG *opt_args;
+ unsigned int no_kwarg: 1;
+ unsigned int ruby2_keywords: 1;
+ unsigned int forwarding: 1;
+};
+
typedef struct RNode_ARGS {
NODE node;
- struct rb_args_info *nd_ainfo;
+ struct rb_args_info nd_ainfo;
} rb_node_args_t;
typedef struct RNode_ARGS_AUX {
@@ -1061,27 +1082,6 @@ typedef struct RNode_RIPPER_VALUES {
#define nd_init_type(n,t) \
(n)->flags=(((n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<<NODE_TYPESHIFT)&NODE_TYPEMASK))
-struct rb_args_info {
- NODE *pre_init;
- NODE *post_init;
-
- int pre_args_num; /* count of mandatory pre-arguments */
- int post_args_num; /* count of mandatory post-arguments */
-
- ID first_post_arg;
-
- ID rest_arg;
- ID block_arg;
-
- struct RNode_KW_ARG *kw_args;
- NODE *kw_rest_arg;
-
- struct RNode_OPT_ARG *opt_args;
- unsigned int no_kwarg: 1;
- unsigned int ruby2_keywords: 1;
- unsigned int forwarding: 1;
-};
-
typedef struct node_buffer_struct node_buffer_t;
/* T_IMEMO/ast */
typedef struct rb_ast_body_struct {