From: "mame (Yusuke Endoh)" Date: 2012-11-24T10:30:20+09:00 Subject: [ruby-core:49946] [ruby-trunk - Feature #7314][Assigned] Convert Proc to Lambda doesn't work in MRI 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 ---------------------------------------- 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/