diff options
| author | Marcus Klaas <mail@marcusklaas.nl> | 2015-12-27 14:25:37 +0100 |
|---|---|---|
| committer | Marcus Klaas <mail@marcusklaas.nl> | 2015-12-27 14:25:37 +0100 |
| commit | 291aa1b22800020ae2ee7fdd5e094c170589b8b8 (patch) | |
| tree | fa4799e1943eccc76fe95438e7fde15d24a61ea5 /src/utils.rs | |
| parent | 71508b310bfcaf425babe822bb886e6dabb7d026 (diff) | |
Make fn argument formatting more resilient for complex self types
Diffstat (limited to 'src/utils.rs')
| -rw-r--r-- | src/utils.rs | 12 |
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 ", |
