about summary refs log tree commit diff
path: root/src/libsyntax_pos
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2018-10-23 10:07:11 -0700
committerEsteban Küber <esteban@kuber.com.ar>2018-10-23 10:07:11 -0700
commit8544db0faa9e0f7a70323ad5f3e75358bba6820d (patch)
treeb4c546213efb548d9bc6cbb71b63ccd66aa2ae30 /src/libsyntax_pos
parenta66dc8a1489d2818b5e63f18e1464be79da1f137 (diff)
downloadrust-8544db0faa9e0f7a70323ad5f3e75358bba6820d.tar.gz
rust-8544db0faa9e0f7a70323ad5f3e75358bba6820d.zip
Add macro call span when lacking any other span in diagnostic
Diffstat (limited to 'src/libsyntax_pos')
-rw-r--r--src/libsyntax_pos/lib.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libsyntax_pos/lib.rs b/src/libsyntax_pos/lib.rs
index 45eaf1d3190..639155636ed 100644
--- a/src/libsyntax_pos/lib.rs
+++ b/src/libsyntax_pos/lib.rs
@@ -612,6 +612,17 @@ impl MultiSpan {
         &self.primary_spans
     }
 
+    /// Returns `true` if this contains only a dummy primary span with any hygienic context.
+    pub fn is_dummy(&self) -> bool {
+        let mut is_dummy = true;
+        for span in &self.primary_spans {
+            if !span.is_dummy() {
+                is_dummy = false;
+            }
+        }
+        is_dummy
+    }
+
     /// Replaces all occurrences of one Span with another. Used to move Spans in areas that don't
     /// display well (like std macros). Returns true if replacements occurred.
     pub fn replace(&mut self, before: Span, after: Span) -> bool {