about summary refs log tree commit diff
path: root/src/libsyntax_pos
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsyntax_pos')
-rw-r--r--src/libsyntax_pos/lib.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libsyntax_pos/lib.rs b/src/libsyntax_pos/lib.rs
index ff3c1cf9f47..4d42b85ea75 100644
--- a/src/libsyntax_pos/lib.rs
+++ b/src/libsyntax_pos/lib.rs
@@ -103,6 +103,7 @@ pub enum FileName {
     CliCrateAttr(u64),
     /// Custom sources for explicit parser calls from plugins and drivers
     Custom(String),
+    DocTest(PathBuf, isize),
 }
 
 impl std::fmt::Display for FileName {
@@ -119,6 +120,7 @@ impl std::fmt::Display for FileName {
             CfgSpec(_) => write!(fmt, "<cfgspec>"),
             CliCrateAttr(_) => write!(fmt, "<crate attribute>"),
             Custom(ref s) => write!(fmt, "<{}>", s),
+            DocTest(ref path, _) => write!(fmt, "{}", path.display()),
         }
     }
 }
@@ -142,7 +144,8 @@ impl FileName {
             CfgSpec(_) |
             CliCrateAttr(_) |
             Custom(_) |
-            QuoteExpansion(_) => false,
+            QuoteExpansion(_) |
+            DocTest(_, _) => false,
         }
     }
 
@@ -156,7 +159,8 @@ impl FileName {
             CfgSpec(_) |
             CliCrateAttr(_) |
             Custom(_) |
-            QuoteExpansion(_) => false,
+            QuoteExpansion(_) |
+            DocTest(_, _) => false,
             Macros(_) => true,
         }
     }
@@ -196,6 +200,10 @@ impl FileName {
         src.hash(&mut hasher);
         FileName::CliCrateAttr(hasher.finish())
     }
+
+    pub fn doc_test_source_code(path: PathBuf, line: isize) -> FileName{
+        FileName::DocTest(path, line)
+    }
 }
 
 /// Spans represent a region of code, used for error reporting. Positions in spans