diff options
| author | bors <bors@rust-lang.org> | 2019-04-05 12:13:52 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-04-05 12:13:52 +0000 |
| commit | 4d7defb26584b0d4e5cad372b2ab8888bfc22f3a (patch) | |
| tree | 701541189e7d5651cb6553be6b8bdaf4ec881559 /src/libsyntax/parse | |
| parent | a781c47243a5ebde3f84a9635ffddd1cfc82ed9c (diff) | |
| parent | 7249036de5c6a2e8aad93512e3f529f3024d03e5 (diff) | |
| download | rust-4d7defb26584b0d4e5cad372b2ab8888bfc22f3a.tar.gz rust-4d7defb26584b0d4e5cad372b2ab8888bfc22f3a.zip | |
Auto merge of #59721 - Centril:rollup-ieam9ke, r=Centril
Rollup of 5 pull requests Successful merges: - #59665 (improve worst-case performance of HashSet.is_subset) - #59687 (cleanup shebang handling in the lexer) - #59690 (Mark unix::ffi::OsStrExt methods as inline) - #59702 (Use declare_lint_pass! and impl_lint_pass! in more places) - #59712 (wasm32: Default to a "static" relocation model) Failed merges: r? @ghost
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/lexer/mod.rs | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/libsyntax/parse/lexer/mod.rs b/src/libsyntax/parse/lexer/mod.rs index d0162ef1704..5557e281a66 100644 --- a/src/libsyntax/parse/lexer/mod.rs +++ b/src/libsyntax/parse/lexer/mod.rs @@ -1,10 +1,9 @@ use crate::ast::{self, Ident}; -use crate::source_map::{SourceMap, FilePathMapping}; use crate::parse::{token, ParseSess}; use crate::symbol::Symbol; use errors::{Applicability, FatalError, Diagnostic, DiagnosticBuilder}; -use syntax_pos::{BytePos, CharPos, Pos, Span, NO_EXPANSION}; +use syntax_pos::{BytePos, Pos, Span, NO_EXPANSION}; use core::unicode::property::Pattern_White_Space; use std::borrow::Cow; @@ -667,14 +666,9 @@ impl<'a> StringReader<'a> { return None; } - // I guess this is the only way to figure out if - // we're at the beginning of the file... - let smap = SourceMap::new(FilePathMapping::empty()); - smap.files.borrow_mut().source_files.push(self.source_file.clone()); - let loc = smap.lookup_char_pos_adj(self.pos); - debug!("Skipping a shebang"); - if loc.line == 1 && loc.col == CharPos(0) { - // FIXME: Add shebang "token", return it + let is_beginning_of_file = self.pos == self.source_file.start_pos; + if is_beginning_of_file { + debug!("Skipping a shebang"); let start = self.pos; while !self.ch_is('\n') && !self.is_eof() { self.bump(); @@ -1911,7 +1905,7 @@ mod tests { use crate::ast::{Ident, CrateConfig}; use crate::symbol::Symbol; - use crate::source_map::SourceMap; + use crate::source_map::{SourceMap, FilePathMapping}; use crate::feature_gate::UnstableFeatures; use crate::parse::token; use crate::diagnostics::plugin::ErrorMap; |
