def each_result_arg
      match_all = ->(_) { true }
      lcov.source_files.each do |relative_filename, coverage|
        path = File.join(code_dir, relative_filename)
        root_ast = Imagen::Node::Root.new.build_from_file(path)
        next if root_ast.children.empty?

        root_ast.children[0].find_all(match_all).each do |node|
          yield(relative_filename, coverage, node)
        end
      end
    end
def each_result_arg
      match_all = ->(_) { true }
      lcov.source_files.each do |relative_filename, coverage|
        path = File.join(code_dir, relative_filename)
        root_ast = Imagen::Node::Root.new.build_from_file(path)
        next if root_ast.children.empty?

        root_ast.children[0].find_all(match_all).each do |node|
          yield(relative_filename, coverage, node)
        end
      end
    end
TODO: should that start from changeset.file_paths?
 this way we could report things that weren't even loaded in any spec,
 so is this still good idea? (Rakefile, .gemspec etc)