void (ProblemsHolder holder, NullableNotNullManager nullableManager, PsiParameter parameter, List<PsiParameter> superParameters) { PsiIdentifier nameIdentifier = parameter.getNameIdentifier(); if (nameIdentifier == null) return; PsiParameter nullableSuper = findNullableSuperForNotNullParameter(parameter, superParameters); if (nullableSuper != null) { PsiAnnotation annotation = AnnotationUtil.findAnnotation(parameter, nullableManager.getNotNulls(), true); reportProblem(holder, annotation != null ? annotation : nameIdentifier, "inspection.nullable.problems.NotNull.parameter.overrides.Nullable", getPresentableAnnoName(parameter), getPresentableAnnoName(nullableSuper)); } PsiParameter notNullSuper = findNotNullSuperForNonAnnotatedParameter(nullableManager, parameter, superParameters); if (notNullSuper != null) { LocalQuickFix fix = AnnotationUtil.isAnnotatingApplicable(parameter, nullableManager.getDefaultNotNull()) ? AddAnnotationPsiFix.createAddNotNullFix(parameter) : createChangeDefaultNotNullFix(nullableManager, notNullSuper); reportProblem(holder, nameIdentifier, fix, "inspection.nullable.problems.parameter.overrides.NotNull", getPresentableAnnoName(notNullSuper)); } if (isNotNullParameterOverridingNonAnnotated(nullableManager, parameter, superParameters)) { NullabilityAnnotationInfo info = nullableManager.findOwnNullabilityInfo(parameter); assert info != null; PsiAnnotation notNullAnnotation = info.getAnnotation(); boolean physical = PsiTreeUtil.isAncestor(parameter, notNullAnnotation, true); final LocalQuickFix fix = physical ? new RemoveAnnotationQuickFix(notNullAnnotation, parameter) : null; reportProblem(holder, physical ? notNullAnnotation : nameIdentifier, fix, "inspection.nullable.problems.NotNull.parameter.overrides.not.annotated", getPresentableAnnoName(parameter)); } PsiTypeElement typeElement = parameter.getTypeElement(); if (typeElement != null) { for (PsiParameter superParameter : superParameters) { if (isNullableNotNullCollectionConflict(parameter.getType(), superParameter.getType(), holder.getFile(), new HashSet<>())) { reportProblem(holder, typeElement, "nullable.stuff.error.overriding.nullable.with.notnull"); break; } } } }