diff options
Diffstat (limited to 'dhall/src')
| -rw-r--r-- | dhall/src/error/builder.rs | 6 | ||||
| -rw-r--r-- | dhall/src/syntax/ast/span.rs | 10 | 
2 files changed, 4 insertions, 12 deletions
| diff --git a/dhall/src/error/builder.rs b/dhall/src/error/builder.rs index f444518..c0bacb5 100644 --- a/dhall/src/error/builder.rs +++ b/dhall/src/error/builder.rs @@ -1,6 +1,5 @@  use annotate_snippets::{      display_list::DisplayList, -    formatter::DisplayListFormatter,      snippet::{Annotation, AnnotationType, Slice, Snippet, SourceAnnotation},  }; @@ -152,10 +151,9 @@ impl ErrorBuilder {              title: Some(this.title.into_annotation()),              slices,              footer, +            opt: Default::default(),          }; -        let dl = DisplayList::from(snippet); -        let dlf = DisplayListFormatter::new(true, false); -        dlf.format(&dl) +        DisplayList::from(snippet).to_string()      }  } diff --git a/dhall/src/syntax/ast/span.rs b/dhall/src/syntax/ast/span.rs index 153a624..79bcc52 100644 --- a/dhall/src/syntax/ast/span.rs +++ b/dhall/src/syntax/ast/span.rs @@ -76,18 +76,12 @@ impl Span {  /// Convert a byte idx into a string into a char idx for consumption by annotate_snippets.  fn char_idx_from_byte_idx(input: &str, idx: usize) -> usize { -    let char_idx = input +    input          .char_indices()          .enumerate()          .find(|(_, (i, _))| *i == idx)          .map(|(i, (_, _))| i)          // We should be able to unwrap() here, but somehow it panics on an example from          // serde_dhall/lib.rs... -        .unwrap_or(0); -    // Unix-style newlines are counted as two chars (see -    // https://github.com/rust-lang/annotate-snippets-rs/issues/24). -    let nbr_newlines = input[..idx].chars().filter(|c| *c == '\n').count(); -    let nbr_carriage_returns = -        input[..idx].chars().filter(|c| *c == '\r').count(); -    char_idx + nbr_newlines - nbr_carriage_returns +        .unwrap_or(0)  } | 
