summaryrefslogtreecommitdiff
path: root/cli/tools/coverage.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2021-12-17 16:17:35 +0000
committerGitHub <noreply@github.com>2021-12-17 17:17:35 +0100
commitca1fbdd63677b78c1697ce74197c3e3860962a4b (patch)
tree5b2d93412c5b3a59574f8609d99539e73871c52a /cli/tools/coverage.rs
parent5d8baf054ea7ec19cd8c6cc573233b97eea6ed82 (diff)
fix(cli/tools/coverage): Split sources by char index (#13114)
Diffstat (limited to 'cli/tools/coverage.rs')
-rw-r--r--cli/tools/coverage.rs17
1 files changed, 12 insertions, 5 deletions
diff --git a/cli/tools/coverage.rs b/cli/tools/coverage.rs
index 7204c0485..a11a75ce1 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