From: maciej@... Date: 2021-07-14T11:52:34+00:00 Subject: [ruby-core:104597] [Ruby master Bug#18038] Invalid interpolation in heredocs Issue #18038 has been reported by maciej.mensfeld (Maciej Mensfeld). ---------------------------------------- Bug #18038: Invalid interpolation in heredocs https://bugs.ruby-lang.org/issues/18038 * 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 both 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: