Commit c18c1945 authored by Mazdak Farrokhzad's avatar Mazdak Farrokhzad Committed by GitHub

Rollup merge of #59671 - matklad:lexer, r=eddyb

Make some of lexer's API private

Lexer is a `pub` type, so it feels wrong that its fields are just pub (I guess it wasn't exported initially), so let's minimize visibility.

Context: I am looking into extracting rust-lexer into a library, which can be shared by rust-analyzer and rustc. I hope that a simple interface like `fn next_token(src: &str) -> (TokenKind, usize)` would work, but to try this out I need to understand what is the current API of the lexer.
parents 05c31baf 1763aea7
......@@ -43,16 +43,16 @@ pub struct UnmatchedBrace {
pub struct StringReader<'a> {
pub sess: &'a ParseSess,
crate sess: &'a ParseSess,
/// The absolute offset within the source_map of the next character to read
pub next_pos: BytePos,
crate next_pos: BytePos,
/// The absolute offset within the source_map of the current character
pub pos: BytePos,
crate pos: BytePos,
/// The current character (which has been read from self.pos)
pub ch: Option<char>,
pub source_file: Lrc<syntax_pos::SourceFile>,
crate ch: Option<char>,
crate source_file: Lrc<syntax_pos::SourceFile>,
/// Stop reading src at this index.
pub end_src_index: usize,
crate end_src_index: usize,
// cached:
peek_tok: token::Token,
peek_span: Span,
......@@ -126,7 +126,7 @@ impl<'a> StringReader<'a> {
/// Immutably extract string if found at current position with given delimiters
pub fn peek_delimited(&self, from_ch: char, to_ch: char) -> Option<String> {
fn peek_delimited(&self, from_ch: char, to_ch: char) -> Option<String> {
let mut pos = self.pos;
let mut idx = self.src_index(pos);
let mut ch = char_at(&self.src, idx);
......@@ -191,7 +191,7 @@ impl<'a> StringReader<'a> {
self.fatal_span(self.peek_span, m)
pub fn emit_fatal_errors(&mut self) {
crate fn emit_fatal_errors(&mut self) {
for err in &mut self.fatal_errs {
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment