private void processClassVariable(VariableExpression expression) { if (passingParams && controller.isInScriptBody()) { //TODO: check if this part is actually used MethodVisitor mv = controller.getMethodVisitor(); // let's create a ScriptReference to pass into the closure mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/ScriptReference"); mv.visitInsn(DUP); loadThisOrOwner(); mv.visitLdcInsn(expression.getName()); mv.visitMethodInsn(INVOKESPECIAL, "org/codehaus/groovy/runtime/ScriptReference", "<init>", "(Lgroovy/lang/Script;Ljava/lang/String;)V", false); } else { PropertyExpression pexp = new PropertyExpression(new VariableExpression("this"), expression.getName()); pexp.getObjectExpression().setSourcePosition(expression); pexp.getProperty().setSourcePosition(expression); pexp.setImplicitThis(true); visitPropertyExpression(pexp); } }
protected void processClassVariable(String name) { if (passingClosureParams && isInScriptBody()) { // let's create a ScriptReference to pass into the closure mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/ScriptReference"); mv.visitInsn(DUP); loadThisOrOwner(); mv.visitLdcInsn(name); mv.visitMethodInsn( INVOKESPECIAL, "org/codehaus/groovy/runtime/ScriptReference", "<init>", "(Lgroovy/lang/Script;Ljava/lang/String;)V"); } else { PropertyExpression pexp = new PropertyExpression(VariableExpression.THIS_EXPRESSION, name); pexp.setImplicitThis(true); visitPropertyExpression(pexp); } }
protected void processClassVariable(String name) { if (passingClosureParams && isInScriptBody()) { // let's create a ScriptReference to pass into the closure mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/ScriptReference"); mv.visitInsn(DUP); loadThisOrOwner(); mv.visitLdcInsn(name); mv.visitMethodInsn( INVOKESPECIAL, "org/codehaus/groovy/runtime/ScriptReference", "<init>", "(Lgroovy/lang/Script;Ljava/lang/String;)V"); } else { PropertyExpression pexp = new PropertyExpression(VariableExpression.THIS_EXPRESSION, name); pexp.setImplicitThis(true); visitPropertyExpression(pexp); } }
protected void processClassVariable(String name) { if (passingClosureParams && isInScriptBody()) { // let's create a ScriptReference to pass into the closure mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/ScriptReference"); mv.visitInsn(DUP); loadThisOrOwner(); mv.visitLdcInsn(name); mv.visitMethodInsn( INVOKESPECIAL, "org/codehaus/groovy/runtime/ScriptReference", "<init>", "(Lgroovy/lang/Script;Ljava/lang/String;)V"); } else { PropertyExpression pexp = new PropertyExpression(VariableExpression.THIS_EXPRESSION, name); pexp.setImplicitThis(true); visitPropertyExpression(pexp); } }
private void processClassVariable(String name) { if (passingParams && controller.isInScriptBody()) { //TODO: check if this part is actually used MethodVisitor mv = controller.getMethodVisitor(); // let's create a ScriptReference to pass into the closure mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/ScriptReference"); mv.visitInsn(DUP); loadThisOrOwner(); mv.visitLdcInsn(name); mv.visitMethodInsn( INVOKESPECIAL, "org/codehaus/groovy/runtime/ScriptReference", "<init>", "(Lgroovy/lang/Script;Ljava/lang/String;)V"); } else { PropertyExpression pexp = new PropertyExpression(VariableExpression.THIS_EXPRESSION, name); pexp.setImplicitThis(true); visitPropertyExpression(pexp); } }