@Override
  public void visitReturnStatement(@NotNull GrReturnStatement returnStatement) {
    boolean isNodeNeeded = myHead == null || myHead.getElement() != returnStatement;
    final GrExpression value = returnStatement.getReturnValue();
    if (value != null) value.accept(this);

    GroovyPsiElement scopeElement = myFunctionalScopeStack.isEmpty() ? null : returnStatement;

    if (isNodeNeeded) {
      InstructionImpl returnInstruction = startNode(returnStatement);
      addPendingEdge(scopeElement, myHead);
      finishNode(returnInstruction);
    }
    else {
      addPendingEdge(scopeElement, myHead);
    }
    interruptFlow();
  }
@Override
  public void visitReturnStatement(@NotNull GrReturnStatement returnStatement)