Issue #14584 has been updated by naruse (Yui NARUSE).

Backport changed from 2.3: REQUIRED, 2.4: REQUIRED, 2.5: REQUIRED to 2.3: REQUIRED, 2.4: REQUIRED, 2.5: DONE

ruby_2_5 r62909 merged revision(s) 62723,62724.

----------------------------------------
Bug #14584: Squigly heredoc with interpolation that has a string literal withe spaces gets incorrect value
https://bugs.ruby-lang.org/issues/14584#change-71187

* Author: asterite (Ary Borenszweig)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin17]
* Backport: 2.3: REQUIRED, 2.4: REQUIRED, 2.5: DONE
----------------------------------------
Given this program:

~~~ruby
text1 = <<~FOO
  one#{"   two   "}
  FOO

text2 = <<~FOO
one#{"   two   "}
FOO

p text1
p text2
~~~

The output is:

~~~
"one two   \n"
"one   two   \n"
~~~

The two should be equal.

I think the problem happens because squigly heredoc will remove the first two spaces from each line in the heredoc, but it seems to also be removing it from literals inside interpolation inside a heredoc.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>