Skip to content

Commit

Permalink
Rollup merge of #63170 - matklad:cleanup-fields, r=petrochenkov
Browse files Browse the repository at this point in the history
cleanup StringReader fields

reduce visibility and replace `Lrc<SourceFile>` with `start_pos`: the single bit we actually *need* from the file.

r? @petrochenkov
  • Loading branch information
Centril authored Aug 1, 2019
2 parents 39d4fe4 + 3f461f5 commit 6905d72
Showing 1 changed file with 11 additions and 12 deletions.
23 changes: 11 additions & 12 deletions src/libsyntax/parse/lexer/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,15 @@ pub struct UnmatchedBrace {
}

pub struct StringReader<'a> {
crate sess: &'a ParseSess,
/// The absolute offset within the source_map of the current character
crate pos: BytePos,
/// The current character (which has been read from self.pos)
crate source_file: Lrc<syntax_pos::SourceFile>,
sess: &'a ParseSess,
/// Initial position, read-only.
start_pos: BytePos,
/// The absolute offset within the source_map of the current character.
pos: BytePos,
/// Stop reading src at this index.
crate end_src_index: usize,
end_src_index: usize,
fatal_errs: Vec<DiagnosticBuilder<'a>>,
// cache a direct reference to the source text, so that we don't have to
// retrieve it via `self.source_file.src.as_ref().unwrap()` all the time.
/// Source text to tokenize.
src: Lrc<String>,
override_span: Option<Span>,
}
Expand All @@ -56,8 +55,8 @@ impl<'a> StringReader<'a> {

StringReader {
sess,
start_pos: source_file.start_pos,
pos: source_file.start_pos,
source_file,
end_src_index: src.len(),
src,
fatal_errs: Vec::new(),
Expand Down Expand Up @@ -108,12 +107,12 @@ impl<'a> StringReader<'a> {
let text: &str = &self.src[start_src_index..self.end_src_index];

if text.is_empty() {
let span = self.mk_sp(self.source_file.end_pos, self.source_file.end_pos);
let span = self.mk_sp(self.pos, self.pos);
return Ok(Token::new(token::Eof, span));
}

{
let is_beginning_of_file = self.pos == self.source_file.start_pos;
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) {
let start = self.pos;
Expand Down Expand Up @@ -533,7 +532,7 @@ impl<'a> StringReader<'a> {

#[inline]
fn src_index(&self, pos: BytePos) -> usize {
(pos - self.source_file.start_pos).to_usize()
(pos - self.start_pos).to_usize()
}

/// Slice of the source text from `start` up to but excluding `self.pos`,
Expand Down

0 comments on commit 6905d72

Please sign in to comment.