@@ -167,11 +167,16 @@ impl CodeMap {
167167 // Note that filename may not be a valid path, eg it may be `<anon>` etc,
168168 // but this is okay because the directory determined by `path.pop()` will
169169 // be empty, so the working directory will be used.
170- let path = PathBuf :: from ( filename. clone ( ) ) ;
170+ let unmapped_path = PathBuf :: from ( filename. clone ( ) ) ;
171171
172172 let ( filename, was_remapped) = self . path_mapping . map_prefix ( filename) ;
173- let filemap =
174- Rc :: new ( FileMap :: new ( filename, was_remapped, path, src, Pos :: from_usize ( start_pos) ) ) ;
173+ let filemap = Rc :: new ( FileMap :: new (
174+ filename,
175+ was_remapped,
176+ unmapped_path,
177+ src,
178+ Pos :: from_usize ( start_pos) ,
179+ ) ) ;
175180
176181 files. push ( filemap. clone ( ) ) ;
177182
@@ -223,7 +228,7 @@ impl CodeMap {
223228 let filemap = Rc :: new ( FileMap {
224229 name : filename,
225230 name_was_remapped,
226- path : PathBuf :: new ( ) ,
231+ unmapped_path : None ,
227232 crate_of_origin,
228233 src : None ,
229234 src_hash,
@@ -353,8 +358,9 @@ impl CodeMap {
353358 self . lookup_char_pos ( sp. lo ( ) ) . file . name . clone ( )
354359 }
355360
356- pub fn span_to_path ( & self , sp : Span ) -> PathBuf {
357- self . lookup_char_pos ( sp. lo ( ) ) . file . path . clone ( )
361+ pub fn span_to_unmapped_path ( & self , sp : Span ) -> PathBuf {
362+ self . lookup_char_pos ( sp. lo ( ) ) . file . unmapped_path . clone ( )
363+ . expect ( "CodeMap::span_to_unmapped_path called for imported FileMap?" )
358364 }
359365
360366 pub fn span_to_lines ( & self , sp : Span ) -> FileLinesResult {
0 commit comments