summaryrefslogtreecommitdiff
path: root/cli/proc_state.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2022-07-11 19:43:47 +0100
committerGitHub <noreply@github.com>2022-07-11 20:43:47 +0200
commit989c72313078e71b60e22902f8a3abc67d085187 (patch)
tree1d1b23447b566c2399884019354aa6ed7d78d675 /cli/proc_state.rs
parent687c712be3be5d36db08ef9726ce356d99511484 (diff)
perf(cli/proc_state): Get error source lines from memory (#15031)
Diffstat (limited to 'cli/proc_state.rs')
-rw-r--r--cli/proc_state.rs30
1 files changed, 15 insertions, 15 deletions
diff --git a/cli/proc_state.rs b/cli/proc_state.rs
index 7154693da..1a32b01a4 100644
--- a/cli/proc_state.rs
+++ b/cli/proc_state.rs
@@ -663,22 +663,22 @@ impl SourceMapGetter for ProcState {
file_name: &str,
line_number: usize,
) -> Option<String> {
- if let Ok(specifier) = resolve_url(file_name) {
- self.file_fetcher.get_source(&specifier).map(|out| {
- // Do NOT use .lines(): it skips the terminating empty line.
- // (due to internally using_terminator() instead of .split())
- let lines: Vec<&str> = out.source.split('\n').collect();
- if line_number >= lines.len() {
- format!(
- "{} Couldn't format source line: Line {} is out of bounds (source may have changed at runtime)",
- crate::colors::yellow("Warning"), line_number + 1,
- )
- } else {
- lines[line_number].to_string()
- }
- })
+ let graph_data = self.graph_data.read();
+ let specifier = graph_data.follow_redirect(&resolve_url(file_name).ok()?);
+ let code = match graph_data.get(&specifier) {
+ Some(ModuleEntry::Module { code, .. }) => code,
+ _ => return None,
+ };
+ // Do NOT use .lines(): it skips the terminating empty line.
+ // (due to internally using_terminator() instead of .split())
+ let lines: Vec<&str> = code.split('\n').collect();
+ if line_number >= lines.len() {
+ Some(format!(
+ "{} Couldn't format source line: Line {} is out of bounds (source may have changed at runtime)",
+ crate::colors::yellow("Warning"), line_number + 1,
+ ))
} else {
- None
+ Some(lines[line_number].to_string())
}
}
}