class RuboCop::Cop::Lint::UnreachableCode

end
do_something
def some_method
# good
@example
end
do_something
return
def some_method
# bad
@example
statement in non-final position in begin(implicit) blocks.
The check are based on the presence of flow of control
This cop checks for unreachable code.

def flow_command?(node)

def flow_command?(node)
  return false unless node.send_type?
  FLOW_COMMANDS.any? { |c| node.command?(c) }
end

def on_begin(node)

def on_begin(node)
  expressions = *node
  expressions.each_cons(2) do |e1, e2|
    next unless NODE_TYPES.include?(e1.type) || flow_command?(e1)
    add_offense(e2, :expression)
  end
end