diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2022-07-27 12:15:35 +1000 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2022-08-01 08:11:15 +1000 |
| commit | 55185992d6f4ef3c01aaab545488863d21232d8d (patch) | |
| tree | 546df1099e8cbfd0bda1b2a45fd8cfab484d0888 /compiler/rustc_parse | |
| parent | 038f9e6bef9c8fcf122d93a8a33ac546f5606eb3 (diff) | |
| download | rust-55185992d6f4ef3c01aaab545488863d21232d8d.tar.gz rust-55185992d6f4ef3c01aaab545488863d21232d8d.zip | |
Improve shebang handling.
Avoid doing stuff until it's necessary.
Diffstat (limited to 'compiler/rustc_parse')
| -rw-r--r-- | compiler/rustc_parse/src/lexer/mod.rs | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/compiler/rustc_parse/src/lexer/mod.rs b/compiler/rustc_parse/src/lexer/mod.rs index e9701ec2d7f..90df8dbd445 100644 --- a/compiler/rustc_parse/src/lexer/mod.rs +++ b/compiler/rustc_parse/src/lexer/mod.rs @@ -64,14 +64,11 @@ impl<'a> StringReader<'a> { let mut spacing = Spacing::Joint; // Skip `#!` at the start of the file - let start_src_index = self.src_index(self.pos); - let text: &str = &self.src[start_src_index..self.end_src_index]; - let is_beginning_of_file = self.pos == self.start_pos; - if is_beginning_of_file { - if let Some(shebang_len) = rustc_lexer::strip_shebang(text) { - self.pos = self.pos + BytePos::from_usize(shebang_len); - spacing = Spacing::Alone; - } + if self.pos == self.start_pos + && let Some(shebang_len) = rustc_lexer::strip_shebang(self.src) + { + self.pos = self.pos + BytePos::from_usize(shebang_len); + spacing = Spacing::Alone; } // Skip trivial (whitespace & comments) tokens |
