class Tapioca::Commands::Annotations

def merge_files(gem_name, contents)

def merge_files(gem_name, contents)
  return if contents.empty?
  rewriter = RBI::Rewriters::Merge.new(keep: RBI::Rewriters::Merge::Keep::NONE)
  contents.each do |content|
    rbi = RBI::Parser.parse_string(content)
    rewriter.merge(rbi)
  end
  tree = rewriter.tree
  return tree.string if tree.conflicts.empty?
  say_error("\n\n  Can't import RBI file for `#{gem_name}` as it contains conflicts:", :yellow)
  tree.conflicts.each do |conflict|
    say_error("    #{conflict}", :yellow)
  end
  nil
rescue RBI::ParseError => e
  say_error("\n\n  Can't import RBI file for `#{gem_name}` as it contains errors:", :yellow)
  say_error("    Error: #{e.message} (#{e.location})")
  nil
end