Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.jruby.ir.instructions.ruby20;
 
public class ReceiveKeywordArgInstr extends ReceiveArgBase {
    public final int numUsedArgs;
    public ReceiveKeywordArgInstr(Variable resultint numUsedArgs) {
        super(.result, -1);
        this. = numUsedArgs;
    }
    @Override
    public String toString() {
        return (isDead() ? "[DEAD]" : "") + (hasUnusedResult() ? "[DEAD-RESULT]" : "") + getResult() + " = " + getOperation() + "(" +  + ")";
    }
    public Object receiveKWArg(ThreadContext contextint kwArgHashCountIRubyObject[] args) {
        if (kwArgHashCount == 0) {
            return .;
        } else {
            RubyHash lastArg = (RubyHash)args[args.length - 1];
            if ( == args.length) {
                /* throw ArgumentError */
                Arity.raiseArgumentError(context.getRuntime(), args.length-1, , -1);
            }
            // If the key exists in the hash, delete and return it.
            RubySymbol argName = context.getRuntime().newSymbol(getResult().getName());
            if (lastArg.fastARef(argName) != null) {
                // SSS FIXME: Can we use an internal delete here?
                return lastArg.delete(contextargName.);
            } else {
                return .;
            }
        }
    }
New to GrepCode? Check out our FAQ X