From: "marcandre (Marc-Andre Lafortune)" Date: 2012-12-11T23:52:41+09:00 Subject: [ruby-core:50763] [ruby-trunk - Bug #7539] Misleading error message "can't convert nil into string" Issue #7539 has been updated by marcandre (Marc-Andre Lafortune). Assignee set to marcandre (Marc-Andre Lafortune) > Looking at the implementation, a "can't append" would need some special code Indeed. It would be redundant anyways, since the error message starts with "in `+':", or whichever method was called last. > I am worried about implying that the user should add to_str, to_ary, etc. to fix this problem Agreed, which is why I proposed making explicit the fact that implicit conversion failed. So, I'll commit "no implicit conversion of into " unless there's a better wording proposed ---------------------------------------- Bug #7539: Misleading error message "can't convert nil into string" https://bugs.ruby-lang.org/issues/7539#change-34614 Author: connec (Chris Connelly) Status: Open Priority: Normal Assignee: marcandre (Marc-Andre Lafortune) Category: core Target version: next minor 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/