@Override
      public void visitLocalVariable(@NotNull PsiLocalVariable variable) {
        if (!LOCAL_VARIABLE) return;
        if (variable.isUnnamed() || PsiUtil.isIgnoredName(variable.getName())) return;
        if (UnusedSymbolUtil.isImplicitUsage(project, variable)) return;

        if (!info.isReferenced(variable)) {
          IntentionAction fix = variable instanceof PsiResourceVariable
                                ? fixFactory.createRenameToIgnoredFix(variable, false)
                                : QuickFixFactory.getInstance().createRemoveUnusedVariableFix(variable);
          registerProblem(variable, JavaErrorBundle.message("local.variable.is.never.used", variable.getName()), List.of(fix));
        }

        else if (!info.isReferencedForRead(variable) && !UnusedSymbolUtil.isImplicitRead(project, variable)) {
          registerProblem(variable, JavaErrorBundle.message("local.variable.is.not.used.for.reading", variable.getName()),
                          List.of(QuickFixFactory.getInstance().createRemoveUnusedVariableFix(variable)));
        }

        else if (!variable.hasInitializer() &&
                 !info.isReferencedForWrite(variable) &&
                 !UnusedSymbolUtil.isImplicitWrite(project, variable)) {
          registerProblem(variable, JavaErrorBundle.message("local.variable.is.not.assigned", variable.getName()),
                          List.of(fixFactory.createAddVariableInitializerFix(variable)));
        }
      }
@Override
      public void visitLocalVariable(@NotNull PsiLocalVariable variable)