Project

General

Profile

Actions

Bug #10167

closed

Prime#include?(mod) hangs up

Added by nitoyon (Kenichi Saita) over 9 years ago. Updated about 4 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
[ruby-core:64546]
Tags:

Description

We expect Prime class implements Module#include?(mod). But Prime#include?(mod) hangs up, because it is overwritten by Enumerable#include?(obj) and tries to search mod linearly from infinite sequence of prime numbers.

Reproducible script:

$ ruby -e 'require "prime"; puts Prime.include?(Enumerable)'
  • Expected: returns true
  • Actual: hangs up

I found this bug by the following code (hangs up if prime is required)

enumerables = []
ObjectSpace.each_object(Class){|klass|
  if klass.include?(Enumerable) then
    enumerables.push klass
  end
}

Files

prime-include.diff (1.21 KB) prime-include.diff fix Prime.include? and Prime.instance.include? nitoyon (Kenichi Saita), 08/29/2014 05:05 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0