Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jruby.ir.instructions;
  
 
 import java.util.Map;
 
 public class DefineClassInstr extends Instr implements ResultInstr {
     private IRClassBody newIRClassBody;
     private Operand container;
     private Operand superClass;
     private Variable result;
     
     public DefineClassInstr(Variable resultIRClassBody newIRClassBodyOperand containerOperand superClass) {
         super(.);
         
         assert result != null"DefineClassInstr result is null";
         
         this. = container;
         this. = superClass == null ? newIRClassBody.getManager().getNil() : superClass;
         this. = newIRClassBody;
         this. = result;
     }
 
     public Operand[] getOperands() {
         return new Operand[]{};
     }
     
     public Variable getResult() {
         return ;
     }
 
     public void updateResult(Variable v) {
         this. = v;
     }
 
     @Override
     public void simplifyOperands(Map<OperandOperandvalueMapboolean force) {
          = .getSimplifiedOperand(valueMapforce);
          = .getSimplifiedOperand(valueMapforce);
     }
 
     @Override
     public String toString() {
         return super.toString() + "(" + .getName() + ", " +  + ", " +  + ", " + .getFileName() + ")";
     }
 
     @Override
     public Instr cloneForInlining(InlinerInfo ii) {
         // SSS FIXME: So, do we clone the class body scope or not?
     }
     
     private RubyModule newClass(ThreadContext contextIRubyObject selfRubyModule classContainerDynamicScope currDynScopeObject[] temp) {
         if ( instanceof IRMetaClassBodyreturn classContainer.getMetaClass();
 
         RubyClass sc;
         if ( == context.runtime.getIRManager().getNil()) {
             sc = null;
         } else {
             Object o = .retrieve(contextselfcurrDynScopetemp);
 
             if (!(o instanceof RubyClass)) {
                 throw context.runtime.newTypeError("superclass must be Class (" + o + " given)");
             }
             
             sc = (RubyClasso;
         }
 
         return classContainer.defineOrGetClassUnder(.getName(), sc);
     }
 
     @Override
     public Object interpret(ThreadContext contextDynamicScope currDynScopeIRubyObject selfObject[] tempBlock block) {
         Object rubyContainer = .retrieve(contextselfcurrDynScopetemp);
         
         if (!(rubyContainer instanceof RubyModule)) {
             throw context.runtime.newTypeError("no outer class/module");
         }
 
         RubyModule newRubyClass = newClass(contextself, (RubyModulerubyContainercurrDynScopetemp);
         .getStaticScope().setModule(newRubyClass);
         return new InterpretedIRMethod(.newRubyClass);
     }
 
     @Override
    public void visit(IRVisitor visitor) {
        visitor.DefineClassInstr(this);
    }
    public IRClassBody getNewIRClassBody() {
        return ;
    }
    public Operand getContainer() {
        return ;
    }
    public Operand getSuperClass() {
        return ;
    }
New to GrepCode? Check out our FAQ X