aboutsummaryrefslogtreecommitdiffstats
path: root/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y8
1 files changed, 5 insertions, 3 deletions
diff --git a/parse.y b/parse.y
index f6e8872426..5d9242cb8d 100644
--- a/parse.y
+++ b/parse.y
@@ -387,7 +387,8 @@ static int local_id_gen(struct parser_params*, ID);
#define local_id(id) local_id_gen(parser, id)
static ID *local_tbl_gen(struct parser_params*);
#define local_tbl() local_tbl_gen(parser)
-static ID internal_id(void);
+static ID internal_id_gen(struct parser_params*);
+#define internal_id() internal_id_gen(parser)
static void dyna_push_gen(struct parser_params*);
#define dyna_push() dyna_push_gen(parser)
@@ -8270,9 +8271,10 @@ rb_gc_mark_symbols(void)
}
static ID
-internal_id(void)
+internal_id_gen(struct parser_params *parser)
{
- return ID_INTERNAL | (++global_symbols.last_id << ID_SCOPE_SHIFT);
+ ID id = (ID)vtable_size(lvtbl->args) + (ID)vtable_size(lvtbl->vars);
+ return ID_INTERNAL | (id << ID_SCOPE_SHIFT);
}
static int