GrGdkMethod (@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(); }