private void performUnboxingRemoval(final InvocationExpression e, final MemberReferenceExpression target) { final Expression boxedValue = target.getTarget(); final MethodReference unboxMethod = (MethodReference) e.getUserData(Keys.MEMBER_REFERENCE); final AstBuilder astBuilder = context.getUserData(Keys.AST_BUILDER); boxedValue.remove(); e.replaceWith( new CastExpression( astBuilder.convertType(unboxMethod.getReturnType()), boxedValue ) ); }
private void performUnboxingRemoval(final InvocationExpression e, final MemberReferenceExpression target) { final Expression boxedValue = target.getTarget(); final MethodReference unboxMethod = (MethodReference) e.getUserData(Keys.MEMBER_REFERENCE); final AstBuilder astBuilder = context.getUserData(Keys.AST_BUILDER); boxedValue.remove(); e.replaceWith( new CastExpression( astBuilder.convertType(unboxMethod.getReturnType()), boxedValue ) ); }
case IMPLICIT: { underlyingValue.remove(); node.replaceWith(underlyingValue); break; node.replaceWith(new CastExpression(astBuilder.convertType(castType), underlyingValue));
private void removeUnboxingForCast( final InvocationExpression e, final MemberReferenceExpression target, final CastExpression parent) { final TypeReference targetType = parent.getType().toTypeReference(); if (targetType == null || !targetType.isPrimitive()) { return; } final Expression boxedValue = target.getTarget(); final ResolveResult boxedValueResult = _resolver.apply(boxedValue); if (boxedValueResult == null || boxedValueResult.getType() == null) { return; } final TypeReference sourceType = boxedValueResult.getType(); final ConversionType conversionType = MetadataHelper.getNumericConversionType(targetType, sourceType); switch (conversionType) { case IMPLICIT: case EXPLICIT: case EXPLICIT_TO_UNBOXED: { boxedValue.remove(); e.replaceWith(boxedValue); return; } default: return; } }
case IMPLICIT: { underlyingValue.remove(); node.replaceWith(underlyingValue); break; node.replaceWith(new CastExpression(astBuilder.convertType(castType), underlyingValue));
private void removeUnboxingForCast( final InvocationExpression e, final MemberReferenceExpression target, final CastExpression parent) { final TypeReference targetType = parent.getType().toTypeReference(); if (targetType == null || !targetType.isPrimitive()) { return; } final Expression boxedValue = target.getTarget(); final ResolveResult boxedValueResult = _resolver.apply(boxedValue); if (boxedValueResult == null || boxedValueResult.getType() == null) { return; } final TypeReference sourceType = boxedValueResult.getType(); final ConversionType conversionType = MetadataHelper.getNumericConversionType(targetType, sourceType); switch (conversionType) { case IMPLICIT: case EXPLICIT: case EXPLICIT_TO_UNBOXED: { boxedValue.remove(); e.replaceWith(boxedValue); return; } default: return; } }
node.replaceWith(inlinedBody); node.replaceWith(expression); assignment.setRight(initializer); expression.remove(); node.replaceWith(expression);
boxedValue.remove(); e.replaceWith( new CastExpression( astBuilder.convertType(unboxMethod.getReturnType()),
node.replaceWith(inlinedBody); node.replaceWith(expression); assignment.setRight(initializer); expression.remove(); node.replaceWith(expression);
node.replaceWith(new CastExpression(astBuilder.convertType(castType), underlyingValue));
e.replaceWith(boxedValue); return;
e.replaceWith(boxedValue); return;
node.replaceWith(inlinedBody); node.replaceWith(expression); assignment.setRight(initializer); expression.remove(); node.replaceWith(expression);