From e1a60b2db97eb629661df2227a1f8f06f1afd6d2 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 11 Mar 2018 12:12:08 +0000 Subject: parse.y: reduce duplicate code git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'parse.y') diff --git a/parse.y b/parse.y index 89c65992c4..999dffbf9f 100644 --- a/parse.y +++ b/parse.y @@ -6280,10 +6280,7 @@ here_document(struct parser_params *p, rb_strterm_heredoc_t *here) if (ptr_end < p->lex.pend) rb_str_cat(str, "\n", 1); lex_goto_eol(p); if (p->heredoc_indent > 0) { - set_yylval_str(str); - add_mark_object(p, str); - flush_string_content(p, enc); - return tSTRING_CONTENT; + goto flush_str; } if (nextc(p) == -1) { if (str) { @@ -6315,10 +6312,11 @@ here_document(struct parser_params *p, rb_strterm_heredoc_t *here) goto restore; } if (c != '\n') { - VALUE lit; flush: - add_mark_object(p, lit = STR_NEW3(tok(p), toklen(p), enc, func)); - set_yylval_str(lit); + str = STR_NEW3(tok(p), toklen(p), enc, func); + flush_str: + set_yylval_str(str); + add_mark_object(p, str); flush_string_content(p, enc); return tSTRING_CONTENT; } -- cgit v1.2.3