Scope scope = context.getScope();
Scope scope = generatorContext.getScope();
@Override public BytecodeNode generateExpression(Signature signature, BytecodeGeneratorContext generatorContext, Type returnType, List<RowExpression> arguments, Optional<Variable> outputBlockVariable) Scope scope = generatorContext.getScope();
Scope scope = generatorContext.getScope(); Variable value = scope.createTempVariable(javaType);
Variable rowBlock = generator.getScope().createTempVariable(Block.class); int index = (int) ((ConstantExpression) arguments.get(1)).getValue();
Scope scope = context.getScope(); List<Type> types = rowType.getTypeParameters();
@Override public BytecodeNode generateExpression(Signature signature, BytecodeGeneratorContext context, Type returnType, List<RowExpression> arguments) { checkArgument(arguments.size() == 1, "try methods only contain a single expression"); checkArgument(getOnlyElement(arguments) instanceof CallExpression, "try methods must contain a call expression"); CallExpression innerCallExpression = (CallExpression) getOnlyElement(arguments); checkState(tryMethodsMap.containsKey(innerCallExpression), "try methods map does not contain this try call"); BytecodeBlock bytecodeBlock = new BytecodeBlock() .comment("load required variables") .getVariable(context.getScope().getVariable("this")); inputParameters.stream() .forEach(bytecodeBlock::getVariable); bytecodeBlock.comment("call dynamic try method: " + tryMethodsMap.get(innerCallExpression).getName()) .invokeVirtual(tryMethodsMap.get(innerCallExpression)) .append(unboxPrimitiveIfNecessary(context.getScope(), Primitives.wrap(innerCallExpression.getType().getJavaType()))); return bytecodeBlock; }
Scope scope = generatorContext.getScope();
Scope scope = generatorContext.getScope();
@Override public BytecodeNode generateExpression(Signature signature, BytecodeGeneratorContext generatorContext, Type returnType, List<RowExpression> arguments) Scope scope = generatorContext.getScope();