Move tracking of the next NodeId from syntax's ParseSess to rustc's Session.
This commit is contained in:
parent
222cd73b8a
commit
6a045b9d1c
2 changed files with 15 additions and 24 deletions
|
@ -18,7 +18,7 @@ use parse::parser::Parser;
|
|||
use ptr::P;
|
||||
use str::char_at;
|
||||
|
||||
use std::cell::{Cell, RefCell};
|
||||
use std::cell::RefCell;
|
||||
use std::fs::File;
|
||||
use std::io::Read;
|
||||
use std::iter;
|
||||
|
@ -44,14 +44,12 @@ pub struct ParseSess {
|
|||
pub span_diagnostic: SpanHandler, // better be the same as the one in the reader!
|
||||
/// Used to determine and report recursive mod inclusions
|
||||
included_mod_stack: RefCell<Vec<PathBuf>>,
|
||||
pub node_id: Cell<ast::NodeId>,
|
||||
}
|
||||
|
||||
pub fn new_parse_sess() -> ParseSess {
|
||||
ParseSess {
|
||||
span_diagnostic: mk_span_handler(default_handler(Auto, None, true), CodeMap::new()),
|
||||
included_mod_stack: RefCell::new(Vec::new()),
|
||||
node_id: Cell::new(1),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -59,23 +57,6 @@ pub fn new_parse_sess_special_handler(sh: SpanHandler) -> ParseSess {
|
|||
ParseSess {
|
||||
span_diagnostic: sh,
|
||||
included_mod_stack: RefCell::new(Vec::new()),
|
||||
node_id: Cell::new(1),
|
||||
}
|
||||
}
|
||||
|
||||
impl ParseSess {
|
||||
pub fn next_node_id(&self) -> ast::NodeId {
|
||||
self.reserve_node_ids(1)
|
||||
}
|
||||
pub fn reserve_node_ids(&self, count: ast::NodeId) -> ast::NodeId {
|
||||
let v = self.node_id.get();
|
||||
|
||||
match v.checked_add(count) {
|
||||
Some(next) => { self.node_id.set(next); }
|
||||
None => panic!("Input too large, ran out of node ids!")
|
||||
}
|
||||
|
||||
v
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue