From: ofajans@... Date: 2015-01-23T20:10:28+00:00 Subject: [ruby-core:67770] [ruby-trunk - Bug #10777] [Open] variable gets reset when passing a named argument to a function, if the name of this argument is the same as variable name Issue #10777 has been reported by Oleg Fayans. ---------------------------------------- Bug #10777: variable gets reset when passing a named argument to a function, if the name of this argument is the same as variable name https://bugs.ruby-lang.org/issues/10777 * Author: Oleg Fayans * Status: Open * Priority: Normal * Assignee: Yukihiro Matsumoto * ruby -v: ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- I have a function, say function1 that has a variable, named param with a value of true. from this function I call another function, function2 with the following call: function2(param=false) During this call the value of param in function1 gets changed to false, which absolutely should not happen. Example code: def func2(param=nil) puts "param in func2 is #{param}" end def func1(param="Hello") puts param func2(param="Goodbye") puts "param in func1 is #{param}" end > func1 Hello param in func2 is Goodbye param in func1 is Goodbye => nil The same in a pastebin: http://pastebin.mozilla.org/8315338 This behavior is observed also in ruby-1.9.3-p545 -- https://bugs.ruby-lang.org/