Add line_count field to rb_ast_body_t

This patch adds `int line_count` field to `rb_ast_body_t` structure.
Instead, we no longer cast `script_lines` to Fixnum.

## Background

Ref https://github.com/ruby/ruby/pull/10618

In the PR above, we have decoupled IMEMO from `rb_ast_t`.
This means we could lift the five-words-restriction of the structure
that forced us to unionize `rb_ast_t *` and `FIXNUM` in one field.

## Relating refactor

- Remove the second parameter of `rb_ruby_ast_new()` function

## Attention

I will remove a code that assigns -1 to line_count, in `rb_binding_add_dynavars()`
of vm.c, because I don't think it is necessary.
But I will make another PR for this so that we can atomically revert
in case I was wrong (See the comment on the code)
This commit is contained in:
HASUMI Hitoshi 2024-04-26 21:43:35 +09:00 committed by Yuichiro Kaneko
parent bf1f16ef47
commit 55a402bb75
9 changed files with 29 additions and 30 deletions

View file

@ -96,7 +96,7 @@ enum lex_state_e {
EXPR_NONE = 0
};
VALUE rb_ruby_ast_new(const NODE *const root, rb_parser_ary_t *script_lines);
VALUE rb_ruby_ast_new(const NODE *const root);
rb_ast_t *rb_ruby_ast_data_get(VALUE vast);
#endif /* INTERNAL_RUBY_PARSE_H */