@Override public Object visit(ASTAllocationExpression node, Object data) { if (node.isAnonymousClass()) { currentLookup.push(getMethodLookup(node.getType())); } super.visit(node, data); if (node.isAnonymousClass()) { currentLookup.pop(); } return data; }
private void checkForBadAnonymousDiamondUsage() { if (jdkVersion < 9) { ASTAllocationExpression node = (ASTAllocationExpression)jjtree.peekNode(); ASTTypeArguments types = node.getFirstChildOfType(ASTClassOrInterfaceType.class).getFirstChildOfType(ASTTypeArguments.class); if (node.isAnonymousClass() && types != null && types.isDiamond()) { throwParseException("Cannot use '<>' with anonymous inner classes when running in JDK inferior to 9 mode!"); } } } /**
@Override public Object visit(ASTAllocationExpression node, Object data) { if (!node.isAnonymousClass()) { return super.visit(node, data); } updateContextForAnonymousClass(); node.setQualifiedName(contextClassQName()); super.visit(node, data); rollbackClassContext(); return data; }
@Override public Object visit(ASTAllocationExpression node, Object data) { if (node.isAnonymousClass()) { currentLookup.push(getMethodLookup(node.getType())); } super.visit(node, data); if (node.isAnonymousClass()) { currentLookup.pop(); } return data; }
private void checkForBadAnonymousDiamondUsage() { if (jdkVersion < 9) { ASTAllocationExpression node = (ASTAllocationExpression)jjtree.peekNode(); ASTTypeArguments types = node.getFirstChildOfType(ASTClassOrInterfaceType.class).getFirstChildOfType(ASTTypeArguments.class); if (node.isAnonymousClass() && types != null && types.isDiamond()) { throwParseException("Cannot use '<>' with anonymous inner classes when running in JDK inferior to 9 mode!"); } } } /**
@Override public Object visit(ASTAllocationExpression node, Object data) { if (!node.isAnonymousClass()) { return super.visit(node, data); } updateContextForAnonymousClass(); node.setQualifiedName(contextClassQName()); super.visit(node, data); rollbackClassContext(); return data; }