@NotNull
  public static GrGdkMethod createGdkMethod(@NotNull final PsiMethod original,
                                            final boolean isStatic,
                                            @Nullable final String originInfo) {
    final Key<CachedValue<GrGdkMethodImpl>> cachedValueKey = isStatic ? CACHED_STATIC : CACHED_NON_STATIC;
    CachedValue<GrGdkMethodImpl> cachedValue = original.getUserData(cachedValueKey);
    if (cachedValue == null) {
      cachedValue = CachedValuesManager.getManager(original.getProject()).createCachedValue(
        () -> CachedValueProvider.Result.create(new GrGdkMethodImpl(original, isStatic, originInfo),
                                                PsiModificationTracker.MODIFICATION_COUNT), false);
      original.putUserData(cachedValueKey, cachedValue);
    }

    return cachedValue.getValue();
  }
@NotNull
  public static GrGdkMethod createGdkMethod(@NotNull final PsiMethod original,
                                            final boolean isStatic,
                                            @Nullable final String originInfo)