@Nullable
  private static GrMethodCallExpression createGetterCall(FieldDescriptor fieldDescriptor,
                                                         GrReferenceExpression expr,
                                                         PsiClass aClass,
                                                         PsiMethod getter) throws IncorrectOperationException {
    final GroovyPsiElementFactory factory = GroovyPsiElementFactory.getInstance(fieldDescriptor.getField().getProject());
    final String getterName = fieldDescriptor.getGetterName();
    @NonNls String text = getterName + "()";
    GrExpression qualifier = expr.getQualifierExpression();
    if (qualifier != null) {
      text = "q." + text;
    }
    GrMethodCallExpression methodCall = (GrMethodCallExpression)factory.createExpressionFromText(text, expr);

    if (qualifier != null) {
      ((GrReferenceExpression)methodCall.getInvokedExpression()).getQualifierExpression().replace(qualifier);
    }

    methodCall = checkMethodResolvable(methodCall, getter, expr, aClass);
    if (methodCall == null) {
      VisibilityUtil.escalateVisibility(fieldDescriptor.getField(), expr);
    }
    return methodCall;
  }
@Nullable
  private static GrMethodCallExpression createGetterCall(FieldDescriptor fieldDescriptor,
                                                         GrReferenceExpression expr,
                                                         PsiClass aClass,
                                                         PsiMethod getter)