Merge pull request #2351 from topecongiro/issue-2256

Use correct BytePos when recovering comments on removed import
This commit is contained in:
Nick Cameron 2018-01-12 17:30:27 +13:00 committed by GitHub
commit 09e44b22f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 4 deletions

View File

@ -314,11 +314,14 @@ impl<'a> FmtVisitor<'a> {
Some(ref s) if s.is_empty() => {
// Format up to last newline
let prev_span = mk_sp(self.last_pos, source!(self, span).lo());
let span_end = match self.snippet(prev_span).rfind('\n') {
Some(offset) => self.last_pos + BytePos(offset as u32),
None => source!(self, span).lo(),
};
let trimmed_snippet = self.snippet(prev_span).trim_right();
let span_end = self.last_pos + BytePos(trimmed_snippet.len() as u32);
self.format_missing(span_end);
// We have an excessive newline from the removed import.
if self.buffer.ends_with('\n') {
self.buffer.pop();
self.line_number -= 1;
}
self.last_pos = source!(self, span).hi();
}
Some(ref s) => {

View File

@ -0,0 +1,12 @@
// こんにちは
use std::{};
use std::borrow::Cow;
/* comment */ use std::{};
/* comment */ use std::{};
/* comment */ use std::{};

View File

@ -0,0 +1,7 @@
// こんにちは
use std::borrow::Cow;
/* comment */
/* comment */
/* comment */