parse.y: token type by identifer ID type

* parse.y (parse_ident): leave identifier type decision (local or
  const) to rb_enc_symname_type, and set the token type by ID
  type.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2017-09-23 06:49:35 +00:00
parent 5983fd75f2
commit 80aa804a33
1 changed files with 2 additions and 1 deletions

View File

@ -7842,7 +7842,7 @@ parse_ident(struct parser_params *parser, int c, int cmd_state)
tokadd(c);
}
else {
result = ISUPPER(tok()[0]) ? tCONSTANT : tIDENTIFIER;
result = tCONSTANT; /* assume provisionally */
pushback(c);
}
tokfix();
@ -7909,6 +7909,7 @@ parse_ident(struct parser_params *parser, int c, int cmd_state)
}
ident = tokenize_ident(parser, last_state);
if (result == tCONSTANT && is_local_id(ident)) result = tIDENTIFIER;
if (!IS_lex_state_for(last_state, EXPR_DOT|EXPR_FNAME) &&
(result == tIDENTIFIER) && /* not EXPR_FNAME, not attrasgn */
lvar_defined(ident)) {