void (@NotNull PsiReferenceExpression expression) { if (!myHolder.isOnTheFly()) return; PsiElement referenceNameElement = expression.getReferenceNameElement(); if (referenceNameElement != null) { PsiElement resolved = expression.resolve(); if ((resolved instanceof PsiLocalVariable || resolved instanceof PsiParameter) && !((PsiVariable)resolved).hasModifierProperty(PsiModifier.FINAL) && !SuppressionUtil.inspectionResultSuppressed(resolved, ReassignedVariableInspection.this)) { if (resolved instanceof PsiLocalVariable) { if (HighlightControlFlowUtil.isReassigned((PsiVariable)resolved, myLocalVariableProblems)) { myHolder.registerProblem(referenceNameElement, getReassignedMessage((PsiVariable)resolved)); } } else { Boolean isReassigned = myParameterIsReassigned.computeIfAbsent((PsiParameter)resolved, HighlightControlFlowUtil::isAssigned); if (isReassigned) { myHolder.registerProblem(referenceNameElement, getReassignedMessage((PsiVariable)resolved)); } } } } }