about summary refs log tree commit diff
path: root/src/utils.rs
diff options
context:
space:
mode:
authorMarcus Klaas <mail@marcusklaas.nl>2015-12-27 14:25:37 +0100
committerMarcus Klaas <mail@marcusklaas.nl>2015-12-27 14:25:37 +0100
commit291aa1b22800020ae2ee7fdd5e094c170589b8b8 (patch)
treefa4799e1943eccc76fe95438e7fde15d24a61ea5 /src/utils.rs
parent71508b310bfcaf425babe822bb886e6dabb7d026 (diff)
Make fn argument formatting more resilient for complex self types
Diffstat (limited to 'src/utils.rs')
-rw-r--r--src/utils.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/utils.rs b/src/utils.rs
index b1bbb860edb..a13ca247964 100644
--- a/src/utils.rs
+++ b/src/utils.rs
@@ -39,6 +39,18 @@ pub fn span_after(original: Span, needle: &str, codemap: &CodeMap) -> BytePos {
 }
 
 #[inline]
+pub fn span_after_last(original: Span, needle: &str, codemap: &CodeMap) -> BytePos {
+    let snippet = codemap.span_to_snippet(original).unwrap();
+    let mut offset = 0;
+
+    while let Some(additional_offset) = snippet[offset..].find_uncommented(needle) {
+        offset += additional_offset + needle.len();
+    }
+
+    original.lo + BytePos(offset as u32)
+}
+
+#[inline]
 pub fn format_visibility(vis: Visibility) -> &'static str {
     match vis {
         Visibility::Public => "pub ",