[#97063] [Ruby master Bug#16608] ConditionVariable#wait should return false when timeout exceeded — shugo@...

Issue #16608 has been reported by shugo (Shugo Maeda).

10 messages 2020/02/05

[#97084] [Ruby master Feature#16614] New method cache mechanism for Guild — ko1@...

Issue #16614 has been reported by ko1 (Koichi Sasada).

18 messages 2020/02/07

[#97248] [Ruby master Bug#16651] Extensions Do Not Compile on Mingw64 — cfis@...

Issue #16651 has been reported by cfis (Charlie Savage).

17 messages 2020/02/24

[#97289] [Ruby master Bug#16658] `method__cache__clear` DTrace hook was dropped without replacement — v.ondruch@...

Issue #16658 has been reported by vo.x (Vit Ondruch).

9 messages 2020/02/27

[#97307] [Ruby master Feature#16663] Add block or filtered forms of Kernel#caller to allow early bail-out — headius@...

Issue #16663 has been reported by headius (Charles Nutter).

29 messages 2020/02/28

[#97310] [Ruby master Feature#16665] Add an Array#except_index method — alexandr1golubenko@...

Issue #16665 has been reported by alex_golubenko (Alex Golubenko).

12 messages 2020/02/29

[ruby-core:97064] [Ruby master Bug#16609] #select not working with blocks properly

From: lukehill_uk@...
Date: 2020-02-05 13:02:57 UTC
List: ruby-core #97064
Issue #16609 has been reported by LukeH7789 (Luke Hill).

----------------------------------------
Bug #16609: #select not working with blocks properly
https://bugs.ruby-lang.org/issues/16609

* Author: LukeH7789 (Luke Hill)
* Status: Open
* Priority: Normal
* ruby -v: 2.7.0
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I've tagged this as Bug, as it may be a bug, it may be a uncoded / partially working feature.

Observe the following is possible

```
a = [1, 2, 3, 4, 5, 6]
a.select(&:even?) #=> [2, 4, 6]
a.select { |e| e.even? } #=> [2, 4, 6]
a.sample #=> 3 (For example)
a.select(&:even?).sample #=> 2 or 4 or 6
```

However, running `#sample` with a block doesn't complain or throw an error. So the following code runs (But doesn't execute correctly).

```
a.sample(&:even?) #=> 1 or 3 or 5 is **expected**
a.sample { |e| e.even? } #=> 1 or 3 or 5 is **expected**
```

But if you run the second snippet you can get any number from 1 to 6. Here is a few runs

```
2.7.0 :004 > a.sample
 => 3 
2.7.0 :005 > a.sample(&:even?)
 => 1 
2.7.0 :006 > a.sample(&:even?)
 => 2 
2.7.0 :007 > a.sample(&:even?)
 => 6 
2.7.0 :008 > a.sample(&:even?)
 => 3 
2.7.0 :009 > a.sample(&:even?)
 => 2 
```



-- 
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>

In This Thread

Prev Next