class RuboCop::Cop::Style::InfiniteLoop

Use `Kernel#loop` for infinite loops.

@example

# bad
while true
  work
end

# good
loop do
  work
end

Constants

MSG

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/style/infinite_loop.rb, line 37
def autocorrect(node)
  condition_node, = *node
  start_range = node.loc.keyword.begin
  end_range = if node.loc.begin
                node.loc.begin.end
              else
                condition_node.source_range.end
              end
  lambda do |corrector|
    corrector.replace(start_range.join(end_range), 'loop do')
  end
end
on_until(node) click to toggle source
# File lib/rubocop/cop/style/infinite_loop.rb, line 29
def on_until(node)
  condition, = *node

  return unless condition.falsey_literal?

  add_offense(node, :keyword)
end
on_while(node) click to toggle source
# File lib/rubocop/cop/style/infinite_loop.rb, line 21
def on_while(node)
  condition, = *node

  return unless condition.truthy_literal?

  add_offense(node, :keyword)
end