package org.jruby.ir.targets;
import org.jruby.RubyClass;
import org.jruby.ir.runtime.IRRuntimeHelpers;
import org.jruby.runtime.Block;
import org.jruby.runtime.ThreadContext;
import org.jruby.runtime.builtin.IRubyObject;
import java.lang.invoke.MethodType;
public class ZSuperInvokeSite extends SuperInvokeSite {
public ZSuperInvokeSite(MethodType type, String name, String splatmapString, String file, int line) {
super(type, name, splatmapString, file, line);
}
public IRubyObject invoke(ThreadContext context, IRubyObject caller, IRubyObject self, RubyClass definingModule, IRubyObject[] args, Block block) throws Throwable {
if (block == null || !block.isGiven()) block = context.getFrameBlock();
return IRRuntimeHelpers.zSuperSplatArgs(context, self, args, block, splatMap);
}
public IRubyObject fail(ThreadContext context, IRubyObject caller, IRubyObject self, RubyClass definingModule, IRubyObject[] args, Block block) throws Throwable {
return invoke(context, caller, self, definingModule, args, block);
}
}