void (@NotNull PsiParameter parameter) { PsiElement scope = parameter.getDeclarationScope(); boolean methodParameter = scope instanceof PsiMethod; boolean catchParameter = scope instanceof PsiCatchSection; boolean report = methodParameter && reportMethodParameters || !methodParameter && !catchParameter && reportLocalVariables; if (!report) return; if (parameter instanceof PsiPatternVariable) { // Will be reported in instanceof check return; } final PsiTypeElement typeElement = parameter.getTypeElement(); if (!typeIsConcreteClass(typeElement)) return; final String variableName = parameter.getName(); registerError(typeElement, InspectionGadgetsBundle.message( methodParameter ? "concrete.class.method.parameter.problem.descriptor" : "local.variable.of.concrete.class.problem.descriptor", variableName)); }