Rubyspec Language#return failure, define_method with return in the method
-------------------------------------------------------------------------

                 Key: JRUBY-6122
                 URL: https://jira.codehaus.org/browse/JRUBY-6122
             Project: JRuby
          Issue Type: Bug
    Affects Versions: JRuby 1.7
            Reporter: Martin Harriman
            Assignee: Thomas E Enebo
            Priority: Minor


This works in MRI, fails in jruby 1.7:

The return keyword within define_method stops at the method when the return is 
used directly.

The relevant fixture code:

{noformat}
  class DefineMethod
    lamb = proc { return :good }
    define_method :foo, lamb

    def outer
      val = :bad

      # This is tricky, but works. If lamb properly returns, then the
      # return value will go into val before we run the ensure.
      #
      # If lamb's return keeps unwinding incorrectly, val will still
      # have it's old value.
      #
      # We can therefore use val to figure out what happened.
      begin
        val = foo()
      ensure
        if val != :good
          return :bad
        end
      end

      return val
    end
  end
{noformat}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to