void ( @NotNull PsiReferenceExpression expression) { super.visitReferenceExpression(expression); if (!alwaysNegated) { return; } final String referenceName = expression.getReferenceName(); if (referenceName == null) { return; } if (!referenceName.equals(variable.getName())) { return; } final PsiElement target = expression.resolve(); if (!variable.equals(target)) { return; } if (!PsiUtil.isAccessedForReading(expression)) { return; } read = true; PsiElement parent = expression.getParent(); while (parent instanceof PsiParenthesizedExpression) { parent = parent.getParent(); } if (!(parent instanceof PsiPrefixExpression prefixExpression)) { alwaysNegated = false; return; } final IElementType tokenType = prefixExpression.getOperationTokenType(); if (!JavaTokenType.EXCL.equals(tokenType)) { alwaysNegated = false; } }