if (!var.hasInitializer())
{
continue;
}
final ExpressionNode init = var.getInitializer();
if (!init.is(ASTExpression.class))
{
continue;
}
ExpressionNode expr = init.as(ASTExpression.class).getBaseExpression();
if (!expr.is(ASTPrimaryExpression.class))
{
continue;
}
final ASTPrimaryExpression primary = expr.as(ASTPrimaryExpression.class);
ExpressionNode prefix = primary.getPrefix();
if (prefix.is(ASTLambdaExpression.class))
{
final ASTLambdaExpression lambda = prefix.as(ASTLambdaExpression.class);
final ExpressionNode convert = _lambdaConverter.convertLambda(lambda, getType(node, var));
fixBody(lambda.getBody());
var.replaceInitializer(new ASTExpression(convert));
continue;
}
final Nodes<ExpressionSuffix> suffixes = primary.getSuffixes();
if (suffixes.has(ASTMemberReference.class))
{
final List<ExpressionSuffix> leading = new ArrayList<ExpressionSuffix>();
for (ExpressionSuffix suffix : suffixes)
{
if (suffix.is(ASTMemberReference.class))
{
final ASTMemberReference reference = suffix.as(ASTMemberReference.class);
final ExpressionNode target = makePrimaryExpression(prefix, leading);
final ExpressionNode convert = _referenceConverter.convertReference(target,
reference,
getType(node, var));
prefix = new ASTBracketExpression(convert);
leading.clear();
}