boolean (PsiVariable variable) { final PsiElement scope; if (variable instanceof PsiParameter parameter) { scope = parameter.getDeclarationScope(); } else if (variable instanceof PsiLocalVariable) { scope = PsiTreeUtil.getParentOfType(variable, PsiCodeBlock.class); } else { throw new AssertionError(); } if (scope == null) { // incomplete code return true; } final EscapeVisitor visitor = new EscapeVisitor(variable, scope); scope.accept(visitor); return visitor.isEscaping(); }