From: mame@... Date: 2014-10-20T11:46:32+00:00 Subject: [ruby-core:65812] [ruby-trunk - Feature #10406] Method starting with a capital is not detected when parentheses and receiver are omitted Issue #10406 has been updated by Yusuke Endoh. I believe this is intentional. Otherwise, we would become unable to refer Array, Integer, Float, String, and Hash classes because of Kernel#Array and so on ;-) -- Yusuke Endoh ---------------------------------------- Feature #10406: Method starting with a capital is not detected when parentheses and receiver are omitted https://bugs.ruby-lang.org/issues/10406#change-49551 * Author: Tsuyoshi Sawada * Status: Assigned * Priority: Normal * Assignee: Yukihiro Matsumoto * Category: syntax * Target version: Next Major ---------------------------------------- A method whose name starts with a capital is not detected when parentheses and receiver are omitted. ~~~ruby def Foo; puts "foo" end Foo # => uninitialized constant Foo ~~~ If I disambiguate it as a method, then the method is detected: ~~~ruby Foo() # => foo ~~~ This kind of consideration if unnecessary if the method name does not start with a capital. ~~~ruby def foo; puts "foo" end foo # => foo ~~~ So I expect method `Foo` to be detected without explicit receiver and arguments (unless there is a constant with the same name). ~~~ruby def Foo; puts "foo" end ~~~ I first thought this as a bug. If it is not a bug, then I would like to ask this as a feature request. -- https://bugs.ruby-lang.org/