[ruby-core:65280] [ruby-trunk - Bug #10294] Dir[] cannot be called with an array argument

From: jacknagel@...
Date: 2014-09-26 06:28:06 UTC
List: ruby-core #65280
Issue #10294 has been updated by Jack Nagel.


I'm aware of what actually works in practice, but the documentation claims both forms are acceptable:

```
Dir[ array ] → array
Dir[ string [, string ...] ] → array
```

https://github.com/ruby/ruby/blob/2a8989d71c611884631c4d9ff5dba65aed00cc83/dir.c#L1871-L1877

----------------------------------------
Bug #10294: Dir[] cannot be called with an array argument
https://bugs.ruby-lang.org/issues/10294#change-49103

* Author: Jack Nagel
* Status: Rejected
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.2.0dev (2014-09-20 trunk 47651) [x86_64-darwin13]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
The documentation for `Dir[]` claims that it can be called with an array and it will behave like Dir.glob:

```
Dir[ array ] → array
Dir[ string [, string ...] ] → array
Equivalent to calling Dir.glob(array,0) and Dir.glob([string,...],0).
```


However, doing so raises a TypeError:

```
$ ruby -e "puts Dir[['/bin/bash']]"
-e:1:in `[]': no implicit conversion of Array into String (TypeError)
	from -e:1:in `<main>'
```

Dir.glob works as documented:

```
$ ruby -e "puts Dir.glob ['/bin/bash']"
/bin/bash
```


I'm unsure if this is supposed to work as described or if it is a documentation bug, but it is reproducible on 2.0, 2.1, and trunk.



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

In This Thread

Prev Next