void (ProblemsHolder holder, final DataFlowInstructionVisitor visitor, PsiElement scope, Instruction @NotNull [] instructions) { ProblemReporter reporter = new ProblemReporter(holder, scope); reportFailingCasts(reporter, visitor); reportUnreachableSwitchBranches(visitor.getSwitchLabelsReachability(), holder); reportAlwaysFailingCalls(reporter, visitor); List<NullabilityProblem<?>> problems = NullabilityProblemKind.postprocessNullabilityProblems(visitor.problems().toList()); reportNullabilityProblems(reporter, problems); reportNullableReturns(reporter, problems, scope); reportRedundantInstanceOf(visitor, reporter); reportArrayAccessProblems(holder, visitor); reportArrayStoreProblems(holder, visitor); if (REPORT_NULLABLE_METHODS_RETURNING_NOT_NULL && visitor.isAlwaysReturnsNotNull(instructions)) { reportAlwaysReturnsNotNull(holder, scope); } reportMutabilityViolations(holder, visitor.getMutabilityViolations(true), JavaAnalysisBundle.message("dataflow.message.immutable.modified")); reportMutabilityViolations(holder, visitor.getMutabilityViolations(false), JavaAnalysisBundle.message("dataflow.message.immutable.passed")); reportDuplicateAssignments(reporter, visitor); reportPointlessSameArguments(reporter, visitor); reportStreamConsumed(holder, visitor); }