@Override
  public void computeUsages(@NotNull List<? extends PsiElement> targets) {
    PsiElement parent = myTarget.getParent();
    if (parent instanceof PsiContinueStatement) {
      PsiElement statement = ((PsiContinueStatement)parent).findContinuedStatement();
      if (statement instanceof PsiLoopStatement) {
        processLoop((PsiStatement)parent, (PsiLoopStatement)statement);
      }
    }
    else if (parent instanceof PsiBreakStatement) {
      PsiStatement exitedStatement = ((PsiBreakStatement)parent).findExitedStatement();
      if (exitedStatement instanceof PsiLoopStatement) {
        processLoop((PsiStatement)parent, (PsiLoopStatement)exitedStatement);
      }
      else if (exitedStatement instanceof PsiSwitchStatement) {
        addOccurrence(exitedStatement.getFirstChild());
        collectSiblings((PsiStatement)parent, exitedStatement, exitedStatement);
      }
    }
    else if (parent instanceof PsiYieldStatement) {
      PsiSwitchExpression enclosingExpression = ((PsiYieldStatement)parent).findEnclosingExpression();
      if (enclosingExpression != null) {
        addOccurrence(enclosingExpression.getFirstChild());
        collectSiblings((PsiStatement)parent, enclosingExpression, enclosingExpression);
      }
    }
    addOccurrence(myTarget);
  }
@Override
  public void computeUsages(@NotNull List<? extends PsiElement> targets)