@Override
  protected @NotNull PsiElementVisitor buildInternalVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
    JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(holder.getProject());
    PsiFile file = holder.getFile();
    GlobalSearchScope resolveScope = file.getResolveScope();

    PsiClass languageClass = psiFacade.findClass(Language.class.getName(), resolveScope);
    PsiClass fileTypeClass = psiFacade.findClass(FileType.class.getName(), resolveScope);
    PsiClass mapClass = psiFacade.findClass(Map.class.getName(), resolveScope);

    if (languageClass == null ||
        fileTypeClass == null ||
        mapClass == null) {
      return PsiElementVisitor.EMPTY_VISITOR;
    }

    UFieldVisitor visitor = new UFieldVisitor(
      holder,
      mapClass,
      asList(languageClass, fileTypeClass)
    );

    //noinspection unchecked
    return UastHintedVisitorAdapter.create(
      file.getLanguage(),
      visitor,
      new Class[]{UField.class}
    );
  }
@Override
  protected @NotNull PsiElementVisitor buildInternalVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly)