summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--defs/id.def2
-rw-r--r--ext/ripper/eventids2.c2
-rw-r--r--parse.y12
4 files changed, 13 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 8264c240a7..8f1b0b5349 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Nov 10 18:42:24 2015 Aleksandrs Ledovskis <aleksandrs@ledovskis.lv>
+
+ * defs/id.def, parse.y: Switch internal token name to reflect
+ current form of safe-call operator. [Fix GH-1090]
+
Tue Nov 10 18:25:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* hash.c (rb_hash_to_proc): use rb_func_proc_new to make light
diff --git a/defs/id.def b/defs/id.def
index c576fbc663..9d336b24a7 100644
--- a/defs/id.def
+++ b/defs/id.def
@@ -98,7 +98,7 @@ token_ops = %[\
COLON3 ::
ANDOP &&
OROP ||
- DOTQ &.
+ ANDDOT &.
]
class KeywordError < RuntimeError
diff --git a/ext/ripper/eventids2.c b/ext/ripper/eventids2.c
index 5b624c2865..04a40e0da7 100644
--- a/ext/ripper/eventids2.c
+++ b/ext/ripper/eventids2.c
@@ -257,7 +257,7 @@ static const struct token_assoc {
{tRSHFT, O(op)},
{tSTAR, O(op)},
{tDSTAR, O(op)},
- {tDOTQ, O(op)},
+ {tANDDOT, O(op)},
{tSTRING_BEG, O(tstring_beg)},
{tSTRING_CONTENT, O(tstring_content)},
{tSTRING_DBEG, O(embexpr_beg)},
diff --git a/parse.y b/parse.y
index 4397540ab7..04f72d1aeb 100644
--- a/parse.y
+++ b/parse.y
@@ -371,7 +371,7 @@ static int parser_yyerror(struct parser_params*, const char*);
#define ruby_coverage (parser->coverage)
#endif
-#define CALL_Q_P(q) ((q) == tDOTQ)
+#define CALL_Q_P(q) ((q) == tANDDOT)
#define NODE_CALL_Q(q) (CALL_Q_P(q) ? NODE_QCALL : NODE_CALL)
#define NEW_QCALL(q,r,m,a) NEW_NODE(NODE_CALL_Q(q),r,m,a)
@@ -875,7 +875,7 @@ static void token_info_pop(struct parser_params*, const char *token, size_t len)
%token tASET RUBY_TOKEN(ASET) "[]="
%token tLSHFT RUBY_TOKEN(LSHFT) "<<"
%token tRSHFT RUBY_TOKEN(RSHFT) ">>"
-%token tDOTQ RUBY_TOKEN(DOTQ) "&."
+%token tANDDOT RUBY_TOKEN(ANDDOT) "&."
%token tCOLON2 "::"
%token tCOLON3 ":: at EXPR_BEG"
%token <id> tOP_ASGN /* +=, -= etc. */
@@ -5117,12 +5117,12 @@ call_op : '.'
$$ = ripper_id2sym('.');
%*/
}
- | tDOTQ
+ | tANDDOT
{
/*%%%*/
- $$ = tDOTQ;
+ $$ = tANDDOT;
/*%
- $$ = ripper_id2sym(idDOTQ);
+ $$ = ripper_id2sym(idANDDOT);
%*/
}
;
@@ -8278,7 +8278,7 @@ parser_yylex(struct parser_params *parser)
}
else if (c == '.') {
lex_state = EXPR_DOT;
- return tDOTQ;
+ return tANDDOT;
}
pushback(c);
if (IS_SPCARG(c)) {