boolean (PsiElement e) { if (e instanceof PsiContinueStatement || e instanceof PsiReturnStatement || e instanceof PsiThrowStatement) { return true; } if (e instanceof PsiLocalVariable) return true; PsiReferenceExpression ref = null; if (e instanceof PsiAssignmentExpression assignment) { ref = tryCast(PsiUtil.skipParenthesizedExprDown(assignment.getLExpression()), PsiReferenceExpression.class); } if (e instanceof PsiUnaryExpression) { PsiExpression operand = ((PsiUnaryExpression)e).getOperand(); ref = tryCast(PsiUtil.skipParenthesizedExprDown(operand), PsiReferenceExpression.class); } if (ref != null) { PsiElement target = ref.resolve(); if (target instanceof PsiLocalVariable || target instanceof PsiParameter) return true; } return false; }