Issue #8205 has been updated by avyy (Alexander Yunin).


Hello,

Bug description is incorrect, sorry. Now i want to say that implementation of String#to_regexp can breaks behavior of Regexp::union. 

class String
  def to_regexp
    /regexp/
  end
end
Regexp.union('/some_regexp/') #=> /regexp/

And it's not documented now.

----------------------------------------
Bug #8205: Regexp.union behavior and Regexp.try_convert
https://bugs.ruby-lang.org/issues/8205#change-41611

Author: avyy (Alexander Yunin)
Status: Feedback
Priority: Low
Assignee: 
Category: 
Target version: 
ruby -v: 1.9.3p374
Backport: 


Hi! Why Regexp.union('/../') trying to convert string with directly call rb_check_regexp_type(arg) (re.c:3139) instead of rb_reg_s_try_convert (re.c:3122)? I think second variant would be more correct, and i would be able to rewrite Regexp.try_convert in my code for changing behavior as i need. 
For example: i have the code where was implemented String#to_regexp which breaks default behavior of Regexp.union and i got incorrect regexp. But i can't (for some reasons) to rewrite to_regexp method. Yes, stupid example, but it's real situation.


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