Issue #13589 has been updated by shyouhei (Shyouhei Urabe).


domaio (Dorian M) wrote:
> Looking at error.c in general, it seems like a rather intentional

Yes. I bekieve this is how quotation marks in English works.  I don't like the idea to change our error messages only because wild Markdown parsers don't interface.

----------------------------------------
Bug #13589: unmatched opening backtick / closing quote in NoMethodError: undefined method `name' for {}:Hash
https://bugs.ruby-lang.org/issues/13589#change-65030

* Author: domaio (Dorian M)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
From [`error.c`](https://github.com/ruby/ruby/blob/trunk/error.c#L1953-L1964):

~~~ c
/*
 *  Document-class: NoMethodError
 *
 *  Raised when a method is called on a receiver which doesn't have it
 *  defined and also fails to respond with +method_missing+.
 *
 *     "hello".to_ary
 *
 *  <em>raises the exception:</em>
 *
 *     NoMethodError: undefined method `to_ary' for "hello":String
 */
~~~

For instance:

~~~ ruby
>> {}.c
NoMethodError: undefined method `c' for {}:Hash
>> {}.name
NoMethodError: undefined method `name' for {}:Hash
~~~

Expected (two tildes):

~~~ ruby
NoMethodError: undefined method `c` for {}:Hash
~~~

Expected (two single quotes):

~~~ ruby
NoMethodError: undefined method 'c' for {}:Hash
~~~

P.S.: I just noticed it's the same for method names, e.g.:

~~~ ruby
`<main>'
# in
from /Users/d/.rvm/rubies/ruby-2.4.1/bin/irb:11:in `<main>'
~~~

Looking at error.c in general, it seems like a rather intentional behavior but I didn't see any explanation of it (and it doesn't look good / make it easy to copy/paste for me, even all those code examples are messed up because of it :) (but not the ones with the fixed syntax ;) ) ).



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>