Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.jruby.ir.instructions;
 
public class RestArgMultipleAsgnInstr extends MultipleAsgnBase {
    private final int preArgsCount;       // # of reqd args before rest-arg
    private final int postArgsCount;      // # of reqd args after rest-arg
    public RestArgMultipleAsgnInstr(Variable resultOperand arrayint preArgsCountint postArgsCountint index) {
        super(.resultarrayindex);
        this. = preArgsCount;
        this. = postArgsCount;
    }
    public RestArgMultipleAsgnInstr(Variable resultOperand arrayint index) {
        this(resultarray, -1, -1, index);
    }
    @Override
    public String toString() {
        return super.toString() + "(" +  + ", " +  + ", " +  + ", " +  + ")";
    }
    @Override
    public Instr cloneForInlining(InlinerInfo ii) {
    }
    @Override
    public Object interpret(ThreadContext contextDynamicScope currDynScopeIRubyObject selfObject[] tempBlock block) {
        // ENEBO: Can I assume since IR figured this is an internal array it will be RubyArray like this?
        RubyArray rubyArray = (RubyArray.retrieve(contextselfcurrDynScopetemp);
        Object val;
        int n = rubyArray.getLength();
        if (( >= n) || ( +  >= n)) {
            return RubyArray.newEmptyArray(context.runtime);
        } else {
            // FIXME: Perf win to use COW between source Array and this new one (remove toJavaArray)
            return RubyArray.newArrayNoCopy(context.runtimerubyArray.toJavaArray(), , (n -  - ));
        }
    }
    @Override
    public void visit(IRVisitor visitor) {
        visitor.RestArgMultipleAsgnInstr(this);
    }
New to GrepCode? Check out our FAQ X