committed by
Alex Crichton
parent
8f7a7970f3
commit
20e178c582
@@ -271,13 +271,22 @@ impl CodeMap {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn new_filemap(&self, filename: FileName, mut src: ~str) -> Rc<FileMap> {
|
||||
pub fn new_filemap(&self, filename: FileName, src: ~str) -> Rc<FileMap> {
|
||||
let mut files = self.files.borrow_mut();
|
||||
let start_pos = match files.get().last() {
|
||||
None => 0,
|
||||
Some(last) => last.deref().start_pos.to_uint() + last.deref().src.len(),
|
||||
};
|
||||
|
||||
// Remove utf-8 BOM if any.
|
||||
// FIXME #12884: no efficient/safe way to remove from the start of a string
|
||||
// and reuse the allocation.
|
||||
let mut src = if src.starts_with("\ufeff") {
|
||||
src.as_slice().slice_from(3).into_owned()
|
||||
} else {
|
||||
src
|
||||
};
|
||||
|
||||
// Append '\n' in case it's not already there.
|
||||
// This is a workaround to prevent CodeMap.lookup_filemap_idx from accidentally
|
||||
// overflowing into the next filemap in case the last byte of span is also the last
|
||||
|
||||
Reference in New Issue
Block a user