class Prism::Translation::Parser::Compiler

def visit_in_node(node)

^^^^^^^^^^^^^^^^^^^^^
case foo; in bar; end
def visit_in_node(node)
  pattern = nil
  guard = nil
  case node.pattern
  when IfNode
    pattern = within_pattern { |compiler| node.pattern.statements.accept(compiler) }
    guard = builder.if_guard(token(node.pattern.if_keyword_loc), visit(node.pattern.predicate))
  when UnlessNode
    pattern = within_pattern { |compiler| node.pattern.statements.accept(compiler) }
    guard = builder.unless_guard(token(node.pattern.keyword_loc), visit(node.pattern.predicate))
  else
    pattern = within_pattern { |compiler| node.pattern.accept(compiler) }
  end
  builder.in_pattern(
    token(node.in_loc),
    pattern,
    guard,
    srange_find(node.pattern.location.end_offset, node.statements&.location&.start_offset || node.location.end_offset, [";", "then"]),
    visit(node.statements)
  )
end