Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.jruby.ir.instructions;
 
public class InstanceSuperInstr extends CallInstr {
    public InstanceSuperInstr(Variable resultOperand definingModuleMethAddr superMethOperand[] argsOperand closure) {
        super(..resultsuperMethdefiningModuleargsclosure);
    }
    public Operand getDefiningModule() {
        return getReceiver();
    }
    @Override
    public Instr cloneForInlining(InlinerInfo ii) {
                cloneCallArgs(ii),  == null ? null : .cloneForInlining(ii));
    }
    // We cannot convert this into a NoCallResultInstr
    @Override
    public Instr discardResult() {
        return this;
    }
    @Override
        return this;
    }
    @Override
    public Object interpret(ThreadContext contextDynamicScope currDynScopeIRubyObject selfObject[] tempBlock aBlock) {
        IRubyObject[] args = prepareArguments(contextselfgetCallArgs(), currDynScopetemp);
        Block block = prepareBlock(contextselfcurrDynScopetemp);
        String methodName = .getName();
        RubyModule definingModule = (RubyModulegetDefiningModule().retrieve(contextselfcurrDynScopetemp);
        RubyClass superClass = definingModule.getSuperClass();
        DynamicMethod method = superClass != null ? superClass.searchMethod(methodName) : .;
        Object rVal = method.isUndefined() ? Helpers.callMethodMissing(contextselfmethod.getVisibility(), methodName.argsblock)
                                           : method.call(contextselfsuperClassmethodNameargsblock);
        return hasUnusedResult() ? null : rVal;
    }
    @Override
    public void visit(IRVisitor visitor) {
        visitor.InstanceSuperInstr(this);
    }
New to GrepCode? Check out our FAQ X