/** * Prepares declaration for inlining: adds cast * @param decl inlining candidate * @return normalized expression */ private Expression normalizeDeclaration(DeclarationStatement decl) { Expression expr = decl.initializer; Type declType = decl.parameter.getType(); if (expr == null) { expr = Expressions.constant(null, declType); } else if (expr.getType() != declType) { expr = Expressions.convert_(expr, declType); } return expr; }
public void accept(ExpressionWriter writer) { String modifiers = Modifier.toString(modifier); writer.append(modifiers); if (!modifiers.isEmpty()) { writer.append(' '); } writer .append(resultType) .list("(", ", ", ")", Lists.transform(parameters, parameter -> { final String modifiers1 = Modifier.toString(parameter.modifier); return modifiers1 + (modifiers1.isEmpty() ? "" : " ") + Types.className(parameter.getType()) + " " + parameter.name; })) .append(' ').append(body); writer.newlineAndIndent(); }
public Pair<Type, List<Expression>> selector( ParameterExpression parameter, List<Integer> fields, JavaRowFormat targetFormat) { // Optimize target format switch (fields.size()) { case 0: targetFormat = JavaRowFormat.LIST; break; case 1: targetFormat = JavaRowFormat.SCALAR; break; } final PhysType targetPhysType = project(fields, targetFormat); switch (format) { case SCALAR: return Pair.of(parameter.getType(), ImmutableList.of(parameter)); default: return Pair.of(targetPhysType.getJavaRowType(), fieldReferences(parameter, fields)); } }
public Pair<Type, List<Expression>> selector( ParameterExpression parameter, List<Integer> fields, JavaRowFormat targetFormat) { // Optimize target format switch (fields.size()) { case 0: targetFormat = JavaRowFormat.LIST; break; case 1: targetFormat = JavaRowFormat.SCALAR; break; } final PhysType targetPhysType = project(fields, targetFormat); switch (format) { case SCALAR: return Pair.of(parameter.getType(), ImmutableList.of(parameter)); default: return Pair.of(targetPhysType.getJavaRowType(), fieldReferences(parameter, fields)); } }
List<String> boxBridgeArgs = new ArrayList<>(); for (ParameterExpression parameterExpression : parameterList) { final Type parameterType = parameterExpression.getType(); final Type parameterBoxType = Types.box(parameterType); final String parameterBoxTypeName = Types.className(parameterBoxType);