From: tar.yaki71@... Date: 2019-01-31T09:58:39+00:00 Subject: [ruby-core:91354] [Ruby trunk Bug#15576] Wrong error message from some class methods of `Dir` Issue #15576 has been reported by takaram (Takuya Aramaki). ---------------------------------------- Bug #15576: Wrong error message from some class methods of `Dir` https://bugs.ruby-lang.org/issues/15576 * Author: takaram (Takuya Aramaki) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux] * Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- When a error is raised in some class methods of `Dir`, the backtrace is as if the user called `Dir.open`. ``` $ ruby -e 'Dir.foreach {}' Traceback (most recent call last): 2: from -e:1:in `
' 1: from -e:1:in `foreach' -e:1:in `open': wrong number of arguments (given 0, expected 1) (ArgumentError) $ ruby -e 'Dir.foreach(nil)' Traceback (most recent call last): 2: from -e:1:in `
' 1: from -e:1:in `foreach' -e:1:in `open': no implicit conversion of nil into String (TypeError) $ ruby -e 'Dir.foreach("not_exist")' Traceback (most recent call last): 2: from -e:1:in `
' 1: from -e:1:in `foreach' -e:1:in `open': No such file or directory @ dir_initialize - not_exist (Errno::ENOENT) ``` The last line of the error message should be ``-e:1:in `foreach': ...`` like `IO.foreach` This occurs in following methods: * `Dir.foreach` * `Dir.entries` * `Dir.each_child` * `Dir.children` -- https://bugs.ruby-lang.org/ Unsubscribe: