Issue #7314 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned
Assignee set to matz (Yukihiro Matsumoto)
Target version set to next minor

Matz will require a use case, I guess.

-- 
Yusuke Endoh <mame / tsg.ne.jp>
----------------------------------------
Feature #7314: Convert Proc to Lambda doesn't work in MRI
https://bugs.ruby-lang.org/issues/7314#change-33711

Author: schneems (Richard Schneeman)
Status: Assigned
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: 
Target version: next minor


=begin

I have code where I need to convert a proc to a lambda (i need to be able to return out of the block). I would expect that passing a proc into a lambda to return a lambda. When I run this code on MRI i do not get the result I would expect

 my_proc = proc { |x| x }
 my_lambda = lambda &my_proc
 my_lambda.lambda?

The result is (({false})) but I would expect it to be  (({true}))

There is currently a way to turn a proc into a lambda in MRI like this: 

  def convert_to_lambda &block
    obj = Object.new
    obj.define_singleton_method(:_, &block)
    return obj.method(:_).to_proc
  end

But this feels like a hack, and is not supported across other implementations. I would expect that passing a proc into a lambda to return a lambda, I believe it is a bug.

=end




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