Project

General

Profile

Actions

Bug #11989

closed

Dedenting interpolating heredoc can interpret escapes incorrectly

Added by whitequark (whitequark *) over 8 years ago. Updated about 6 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
[ruby-core:72855]

Description

It is clear that the dedenting <<~HEREDOC feature was intended to only consider actual whitespace in the source file as indentation, not any escaped whitespace. E.g.:

p <<~"E"
  \ x
   y
E

It prints " x\n y\n". So "\ " does not count as whitespace. There is even an MRI test for this.

However, this case is handled differently:

p <<~"E"
  x\n   y
E

It prints "x\n y\n". So "\n" is counted as whitespace, like an actual newline would be. I think it should print "x\n y\n".


Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #14584: Squigly heredoc with interpolation that has a string literal withe spaces gets incorrect valueClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0