From: "rosenfeld (Rodrigo Rosenfeld Rosas)" Date: 2012-12-11T01:44:21+09:00 Subject: [ruby-core:50739] [ruby-trunk - Bug #7539] Misleading error message "can't convert nil into string" Issue #7539 has been updated by rosenfeld (Rodrigo Rosenfeld Rosas). kosaki (Motohiro KOSAKI) wrote: > I support "can't append nil to string" error. I'd prefer a more descriptive message like: "can't append nil to string (object doesn't respond to `to_str`)" This way someone would know that this would work: > nil.class.module_eval{alias to_str to_s}; '' + nil ---------------------------------------- Bug #7539: Misleading error message "can't convert nil into string" https://bugs.ruby-lang.org/issues/7539#change-34591 Author: connec (Chris Connelly) Status: Open Priority: Normal Assignee: Category: core Target version: 1.9.3 ruby -v: ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux] When trying to call `String#+` with `nil` as an argument, you get the error "can't convert nil into String", which does not make sense (in fact seeming blatantly false) as `nil.to_s`, `String(nil)` etc. all return `''` without errors. Ideally, this method should use `to_s` to convert the argument, or else report an error along the lines of "can't append nil to string". Minimal test case: Actual: > '' + nil TypeError: can't convert nil into String Expected: > '' + nil '' -- http://bugs.ruby-lang.org/