From ca1fbdd63677b78c1697ce74197c3e3860962a4b Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Fri, 17 Dec 2021 16:17:35 +0000 Subject: [PATCH] fix(cli/tools/coverage): Split sources by char index (#13114) --- cli/tools/coverage.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/cli/tools/coverage.rs b/cli/tools/coverage.rs index 7204c0485f..a11a75ce14 100644 --- a/cli/tools/coverage.rs +++ b/cli/tools/coverage.rs @@ -231,9 +231,12 @@ impl CoverageReporter for LcovCoverageReporter { continue; } - let source_line = script_source[0..function.ranges[0].start_offset] - .split('\n') - .count(); + let source_line = script_source + .chars() + .take(function.ranges[0].start_offset) + .filter(|c| *c == '\n') + .count() + + 1; let line_index = if let Some(source_map) = maybe_source_map.as_ref() { source_map @@ -277,8 +280,12 @@ impl CoverageReporter for LcovCoverageReporter { { let block_hits = function.ranges[0].count; for (branch_number, range) in function.ranges[1..].iter().enumerate() { - let source_line = - script_source[0..range.start_offset].split('\n').count(); + let source_line = script_source + .chars() + .take(range.start_offset) + .filter(|c| *c == '\n') + .count() + + 1; let line_index = if let Some(source_map) = maybe_source_map.as_ref() { source_map