class RuboCop::Cop::Style::InfiniteLoop
end
work
loop do
# good
end
work
while true
# bad
@example
Use ‘Kernel#loop` for infinite loops.
def autocorrect(node)
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.loc.expression.end end lambda do |corrector| corrector.replace(start_range.join(end_range), 'loop do') end end
def on_until(node)
def on_until(node) condition, = *node return unless FALSEY_LITERALS.include?(condition.type) add_offense(node, :keyword) end
def on_while(node)
def on_while(node) condition, = *node return unless TRUTHY_LITERALS.include?(condition.type) add_offense(node, :keyword) end