From: eileencodes@... Date: 2021-07-20T19:41:34+00:00 Subject: [ruby-core:104656] [Ruby master Bug#18038] Invalid interpolation in heredocs Issue #18038 has been updated by eileencodes (Eileen Uchitelle). I opened a PR here: https://github.com/ruby/ruby/pull/4664 I also confirmed that this is broken in the same way in Ruby 2.5, 2.6, and 2.7 ---------------------------------------- Bug #18038: Invalid interpolation in heredocs https://bugs.ruby-lang.org/issues/18038#change-92966 * Author: maciej.mensfeld (Maciej Mensfeld) * Status: Open * Priority: Normal * ruby -v: ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux] * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- Given code as followed: ``` ruby var = 1 v1 = <<~CMD something #{"/#{var}"} CMD v2 = <<~CMD something #{other = "/#{var}"} CMD v3 = <<~CMD something #{("/#{var}")} CMD p v1 p v2 p v3 p v1 == v2 p v2 == v3 ``` result of running this: ```ruby "something\n/\n" "something\n/1\n" "something\n/\n" false false ``` I would expect all heredocs to return the same value for all the cases. It seems the `other` variable assignment should be irrelevant but only with it the value "1" is present. -- https://bugs.ruby-lang.org/ Unsubscribe: