int (final PsiClass aClass) { if (!aClass.isValid()) { aClass.putUserData(CLASS_KIND_KEY, null); return CLASS_KIND_CLASS; } CachedValue<Integer> value = aClass.getUserData(CLASS_KIND_KEY); if (value == null) { value = CachedValuesManager.getManager(aClass.getProject()).createCachedValue( () -> CachedValueProvider.Result.createSingleDependency(Integer.valueOf(getClassKindImpl(aClass)), aClass), false); aClass.putUserData(CLASS_KIND_KEY, value); } return value.getValue().intValue(); }