private static Set<String> collectDevPatternClassNames(@NotNull final Project project) {
    CachedValue<Set<String>> cachedValue = project.getUserData(PATTERN_CLASSES);
    if (cachedValue == null) {
      cachedValue = CachedValuesManager.getManager(project).createCachedValue(
        () -> CachedValueProvider.Result.create(calcDevPatternClassNames(project), PsiModificationTracker.MODIFICATION_COUNT), false);
      project.putUserData(PATTERN_CLASSES, cachedValue);
    }
    return cachedValue.getValue();
  }
private static Set<String> collectDevPatternClassNames(@NotNull final Project project)