about summary refs log tree commit diff
diff options
context:
space:
mode:
authorIgor Matuszewski <Xanewok@gmail.com>2018-09-24 16:53:49 +0200
committerIgor Matuszewski <Xanewok@gmail.com>2018-09-28 01:54:01 +0200
commit3ceae8db47ec82774df29c45b2d89d379bfd1676 (patch)
treecc12befd50606f36e9ae9c7639ea6dcd200ff3be
parent24123ddea90411851fa69a33369f3e4130ccf831 (diff)
downloadrust-3ceae8db47ec82774df29c45b2d89d379bfd1676.tar.gz
rust-3ceae8db47ec82774df29c45b2d89d379bfd1676.zip
Also remap absolute source names in save-analysis
-rw-r--r--src/librustc_save_analysis/span_utils.rs17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/librustc_save_analysis/span_utils.rs b/src/librustc_save_analysis/span_utils.rs
index 56728aed769..47677a75171 100644
--- a/src/librustc_save_analysis/span_utils.rs
+++ b/src/librustc_save_analysis/span_utils.rs
@@ -37,11 +37,18 @@ impl<'a> SpanUtils<'a> {
 
     pub fn make_filename_string(&self, file: &SourceFile) -> String {
         match &file.name {
-            FileName::Real(path) if !path.is_absolute() && !file.name_was_remapped => {
-                self.sess.working_dir.0
-                    .join(&path)
-                    .display()
-                    .to_string()
+            FileName::Real(path) if !file.name_was_remapped => {
+                if path.is_absolute() {
+                    self.sess.source_map().path_mapping()
+                        .map_prefix(path.clone()).0
+                        .display()
+                        .to_string()
+                } else {
+                    self.sess.working_dir.0
+                        .join(&path)
+                        .display()
+                        .to_string()
+                }
             },
             // If the file name is already remapped, we assume the user
             // configured it the way they wanted to, so use that directly