@Nullable
  public static PsiType getSmartReturnType(@NotNull PsiMethod method) {
    if (GdkMethodUtil.isMacro(method)) {
      return null;
    }
    if (method instanceof GrMethod) {
      return ((GrMethod)method).getInferredReturnType();
    }
    else if (method instanceof GrAccessorMethod) {
      return ((GrAccessorMethod)method).getInferredReturnType();
    }
    else if (method instanceof GrGdkMethod) {
      return getSmartReturnType(((GrGdkMethod)method).getStaticMethod());
    }
    else {
      return method.getReturnType();
    }
  }
@Nullable
  public static PsiType getSmartReturnType(@NotNull PsiMethod method)