jruby/jruby — pull request #1785 by mjc (2014-07-03 21:30:49+00:00)
Title: Unbox 1-argument method calls with a block in IR Interpreter

Previously with method signatures like:
```
@JRubyMethod(name = "execute_query_raw", required = 1) // optional block
public IRubyObject execute_query_raw(final ThreadContext context,
final IRubyObject sql, final Block block) throws SQLException {
```
and
```
@JRubyMethod(name = "execute_query_raw", required = 2, optional = 1)
public IRubyObject execute_query_raw(final ThreadContext context,
final IRubyObject[] args, final Block block) throws SQLException {
```
passing one argument with a block would result in incorrectly selecting
the 2-argument method. This would result in an ArgumentError.

To solve this we added a specialized operation for this kind of Call.

Example is from https://github.com/jruby/activerecord-jdbc-adapter/blob/v1.3.8/src/java/arjdbc/jdbc/RubyJdbcConnection.java#L712-L767.