Skip to content

Commit

Permalink
review comments
Browse files Browse the repository at this point in the history
  • Loading branch information
estebank committed Aug 13, 2019
1 parent 105b3a0 commit 84e202e
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions src/libsyntax/source_map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -519,7 +519,7 @@ impl SourceMap {
/// extract function takes three arguments: a string slice containing the source, an index in
/// the slice for the beginning of the span and an index in the slice for the end of the span.
fn span_to_source<F>(&self, sp: Span, extract_source: F) -> Result<String, SpanSnippetError>
where F: Fn(&str, usize, usize) -> String
where F: Fn(&str, usize, usize) -> Result<String, SpanSnippetError>
{
if sp.lo() > sp.hi() {
return Err(SpanSnippetError::IllFormedSpan(sp));
Expand Down Expand Up @@ -554,15 +554,9 @@ impl SourceMap {
}

if let Some(ref src) = local_begin.sf.src {
if !src.is_char_boundary(start_index) || !src.is_char_boundary(end_index) {
return Err(SpanSnippetError::IllFormedSpan(sp));
}
return Ok(extract_source(src, start_index, end_index));
return extract_source(src, start_index, end_index);
} else if let Some(src) = local_begin.sf.external_src.borrow().get_source() {
if !src.is_char_boundary(start_index) || !src.is_char_boundary(end_index) {
return Err(SpanSnippetError::IllFormedSpan(sp));
}
return Ok(extract_source(src, start_index, end_index));
return extract_source(src, start_index, end_index);
} else {
return Err(SpanSnippetError::SourceNotAvailable {
filename: local_begin.sf.name.clone()
Expand All @@ -573,8 +567,9 @@ impl SourceMap {

/// Returns the source snippet as `String` corresponding to the given `Span`
pub fn span_to_snippet(&self, sp: Span) -> Result<String, SpanSnippetError> {
self.span_to_source(sp, |src, start_index, end_index| src[start_index..end_index]
.to_string())
self.span_to_source(sp, |src, start_index, end_index| src.get(start_index..end_index)
.map(|s| s.to_string())
.ok_or_else(|| SpanSnippetError::IllFormedSpan(sp)))
}

pub fn span_to_margin(&self, sp: Span) -> Option<usize> {
Expand All @@ -588,7 +583,9 @@ impl SourceMap {

/// Returns the source snippet as `String` before the given `Span`
pub fn span_to_prev_source(&self, sp: Span) -> Result<String, SpanSnippetError> {
self.span_to_source(sp, |src, start_index, _| src[..start_index].to_string())
self.span_to_source(sp, |src, start_index, _| src.get(..start_index)
.map(|s| s.to_string())
.ok_or_else(|| SpanSnippetError::IllFormedSpan(sp)))
}

/// Extend the given `Span` to just after the previous occurrence of `c`. Return the same span
Expand Down

0 comments on commit 84e202e

Please sign in to comment.