|
1 | 1 | use crate::ast::{self, Ident}; |
2 | | -use crate::source_map::{SourceMap, FilePathMapping}; |
3 | 2 | use crate::parse::{token, ParseSess}; |
4 | 3 | use crate::symbol::Symbol; |
5 | 4 |
|
6 | 5 | use errors::{Applicability, FatalError, Diagnostic, DiagnosticBuilder}; |
7 | | -use syntax_pos::{BytePos, CharPos, Pos, Span, NO_EXPANSION}; |
| 6 | +use syntax_pos::{BytePos, Pos, Span, NO_EXPANSION}; |
8 | 7 | use core::unicode::property::Pattern_White_Space; |
9 | 8 |
|
10 | 9 | use std::borrow::Cow; |
@@ -667,14 +666,9 @@ impl<'a> StringReader<'a> { |
667 | 666 | return None; |
668 | 667 | } |
669 | 668 |
|
670 | | - // I guess this is the only way to figure out if |
671 | | - // we're at the beginning of the file... |
672 | | - let smap = SourceMap::new(FilePathMapping::empty()); |
673 | | - smap.files.borrow_mut().source_files.push(self.source_file.clone()); |
674 | | - let loc = smap.lookup_char_pos_adj(self.pos); |
675 | | - debug!("Skipping a shebang"); |
676 | | - if loc.line == 1 && loc.col == CharPos(0) { |
677 | | - // FIXME: Add shebang "token", return it |
| 669 | + let is_beginning_of_file = self.pos == self.source_file.start_pos; |
| 670 | + if is_beginning_of_file { |
| 671 | + debug!("Skipping a shebang"); |
678 | 672 | let start = self.pos; |
679 | 673 | while !self.ch_is('\n') && !self.is_eof() { |
680 | 674 | self.bump(); |
@@ -1911,7 +1905,7 @@ mod tests { |
1911 | 1905 |
|
1912 | 1906 | use crate::ast::{Ident, CrateConfig}; |
1913 | 1907 | use crate::symbol::Symbol; |
1914 | | - use crate::source_map::SourceMap; |
| 1908 | + use crate::source_map::{SourceMap, FilePathMapping}; |
1915 | 1909 | use crate::feature_gate::UnstableFeatures; |
1916 | 1910 | use crate::parse::token; |
1917 | 1911 | use crate::diagnostics::plugin::ErrorMap; |
|
0 commit comments