summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-12-15 00:37:45 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-12-15 01:52:15 +0900
commit637c3cfc5dc2c044c6eeb2793bf399b6745daa8b (patch)
tree60de35964d2d24f3301e066d8744d30792462e23 /parse.y
parenta3934cd1e57f9d49d24cdaf29ed2bde2fd70cae6 (diff)
Turn SET_LEX_STATE macro into an inline function call
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/5266
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y14
1 files changed, 10 insertions, 4 deletions
diff --git a/parse.y b/parse.y
index 2be892d5ec..c57de18f97 100644
--- a/parse.y
+++ b/parse.y
@@ -165,10 +165,8 @@ enum lex_state_e {
#define IS_lex_state_all(ls) IS_lex_state_all_for(p->lex.state, (ls))
# define SET_LEX_STATE(ls) \
- (p->lex.state = \
- (p->debug ? \
- rb_parser_trace_lex_state(p, p->lex.state, (ls), __LINE__) : \
- (enum lex_state_e)(ls)))
+ parser_set_lex_state(p, ls, __LINE__)
+static inline enum lex_state_e parser_set_lex_state(struct parser_params *p, enum lex_state_e ls, int line);
typedef VALUE stack_type;
@@ -10694,6 +10692,14 @@ new_regexp(struct parser_params *p, VALUE re, VALUE opt, const YYLTYPE *loc)
}
#endif /* !RIPPER */
+static inline enum lex_state_e
+parser_set_lex_state(struct parser_params *p, enum lex_state_e ls, int line)
+{
+ if (p->debug) {
+ ls = rb_parser_trace_lex_state(p, p->lex.state, ls, line);
+ }
+ return p->lex.state = ls;
+}
#ifndef RIPPER
static const char rb_parser_lex_state_names[][8] = {