From: jared@... Date: 2014-07-20T02:56:35+00:00 Subject: [ruby-core:63890] [ruby-trunk - Bug #9931] irb: Really weird behavior for x = "#{x\"}" (ex: irb(main:009:-4)) Issue #9931 has been updated by Jared Beck. PS: Check out the pitchfork book's (2009 edition) chapter on strings, especially the part about interpolation on p. 110. http://pragprog.com/book/ruby/programming-ruby ---------------------------------------- Bug #9931: irb: Really weird behavior for x = "#{x\"}" (ex: irb(main:009:-4)) https://bugs.ruby-lang.org/issues/9931#change-47917 * Author: Jesse Adkins * Status: Open * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- # Our journey starts off rather simple: irb(main):001:0> x = "#{x}" => "" # Okay, makes sense. irb(main):002:0> x = "#{x\"}" irb(main):003:0" # Hmm...Still in a string? That's weird. irb(main):003:0" " irb(main):004:0> # Things seem back to normal but... irb(main):004:0> x # Nothing? But x is defined! irb(main):005:0> # Nothing? Hmm... irb(main):005:0> end irb(main):006:-1> end # Uhh...I don't think that's supposed to do that. irb(main):007:-2> end irb(main):008:-3> end irb(main):009:-4> # ...I'm afraid to go deeper. # Get me out of here! irb(main):009:-4> quit irb(main):010:-4> # O.O irb(main):010:-4> ^C irb(main):010:0> # ...Can I go now? irb(main):010:0> quit # Success! # Additionally, if I put this in a file: x = "#{x\"}" # I get two syntax errors (ruby 1.9.3): test.rb:1: syntax error, unexpected $undefined, expecting '}' x = "#{x\"}" ^ test.rb:1: syntax error, unexpected $end, expecting '}' x = "#{x\"}" ^ -- https://bugs.ruby-lang.org/