lib/undercover.rb in undercover-0.2.0 vs lib/undercover.rb in undercover-0.2.1

- old
+ new

@@ -48,20 +48,25 @@ # TODO: this is experimental and might be incorrect! # rubocop:disable Metrics/MethodLength, Metrics/AbcSize def build_warnings flagged_results = Set.new + changeset.each_changed_line do |filepath, line_no| dist_from_line_no = lambda do |res| return BigDecimal::INFINITY if line_no < res.first_line + + res_lines = res.first_line..res.last_line + return BigDecimal::INFINITY unless res_lines.cover?(line_no) + line_no - res.first_line end dist_from_line_no_sorter = lambda do |res1, res2| dist_from_line_no[res1] <=> dist_from_line_no[res2] end - next unless results[filepath] + res = results[filepath].min(&dist_from_line_no_sorter) flagged_results << res if res&.uncovered?(line_no) end flagged_results end @@ -85,9 +90,10 @@ 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