Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.jruby.ir.instructions;
 
 
public class ReceiveOptArgInstr extends ReceiveArgBase {
    
Starting offset into the args arra
    public final int argOffset;

    
Number of arguments already accounted for
    public final int numUsedArgs;
    public ReceiveOptArgInstr(Variable resultint numUsedArgsint argOffsetint optArgIndex) {
        super(.resultoptArgIndex);
        this. = argOffset;
        this. = numUsedArgs;
    }
    @Override
    public String toString() {
        return (isDead() ? "[DEAD]" : "") + (hasUnusedResult() ? "[DEAD-RESULT]" : "") + getResult() + " = " + getOperation() + "(" +  + "," +  + "," +  + ")";
    }
    @Override
    public Instr cloneForInlining(InlinerInfo ii) {
        // SSS FIXME: Need to add kwArgLoss information in InlinerInfo
        // Added this copy for code clarity
        // argIndex is relative to start of opt args and not the start of arg array
        int optArgIndex = this.;
        int minReqdArgs = optArgIndex + ;
        if (ii.canMapArgsStatically()) {
            int n = ii.getArgsCount();
            return new CopyInstr(ii.getRenamedVariable(), minReqdArgs < n ? ii.getArg( + optArgIndex) : .);
        } else {
            return new OptArgMultipleAsgnInstr(ii.getRenamedVariable(), ii.getArgs(),  + optArgIndexminReqdArgs);
        }
    }
    @Override
    public Instr cloneForBlockCloning(InlinerInfo ii) {
        // Added this copy for code clarity
        // argIndex is relative to start of opt args and not the start of arg array
        int optArgIndex = this.;
        return new ReceiveOptArgInstr(ii.getRenamedVariable(), optArgIndex);
    }
    public Object receiveOptArg(IRubyObject[] argsint kwArgHashCount) {
        // Added this copy for code clarity
        // argIndex is relative to start of opt args and not the start of arg array
        int optArgIndex = this.;
        return (optArgIndex +  + kwArgHashCount < args.length ? args[ + optArgIndex] : .);
    }
    @Override
    public void visit(IRVisitor visitor) {
        visitor.ReceiveOptArgInstr(this);
    }
New to GrepCode? Check out our FAQ X