libsyntax: De-`@mut` `SCTable`
This commit is contained in:
parent
b476d979d2
commit
1dbeb5b2ac
|
@ -710,7 +710,7 @@ pub fn new_mark(m:Mrk, tail:SyntaxContext) -> SyntaxContext {
|
||||||
|
|
||||||
// Extend a syntax context with a given mark and table
|
// Extend a syntax context with a given mark and table
|
||||||
// FIXME #8215 : currently pub to allow testing
|
// FIXME #8215 : currently pub to allow testing
|
||||||
pub fn new_mark_internal(m:Mrk, tail:SyntaxContext,table:&mut SCTable)
|
pub fn new_mark_internal(m: Mrk, tail: SyntaxContext, table: &SCTable)
|
||||||
-> SyntaxContext {
|
-> SyntaxContext {
|
||||||
let key = (tail,m);
|
let key = (tail,m);
|
||||||
// FIXME #5074 : can't use more natural style because we're missing
|
// FIXME #5074 : can't use more natural style because we're missing
|
||||||
|
@ -743,7 +743,10 @@ pub fn new_rename(id:Ident, to:Name, tail:SyntaxContext) -> SyntaxContext {
|
||||||
|
|
||||||
// Extend a syntax context with a given rename and sctable
|
// Extend a syntax context with a given rename and sctable
|
||||||
// FIXME #8215 : currently pub to allow testing
|
// FIXME #8215 : currently pub to allow testing
|
||||||
pub fn new_rename_internal(id:Ident, to:Name, tail:SyntaxContext, table: &mut SCTable)
|
pub fn new_rename_internal(id: Ident,
|
||||||
|
to: Name,
|
||||||
|
tail: SyntaxContext,
|
||||||
|
table: &SCTable)
|
||||||
-> SyntaxContext {
|
-> SyntaxContext {
|
||||||
let key = (tail,id,to);
|
let key = (tail,id,to);
|
||||||
// FIXME #5074
|
// FIXME #5074
|
||||||
|
@ -779,11 +782,11 @@ pub fn new_sctable_internal() -> SCTable {
|
||||||
}
|
}
|
||||||
|
|
||||||
// fetch the SCTable from TLS, create one if it doesn't yet exist.
|
// fetch the SCTable from TLS, create one if it doesn't yet exist.
|
||||||
pub fn get_sctable() -> @mut SCTable {
|
pub fn get_sctable() -> @SCTable {
|
||||||
local_data_key!(sctable_key: @@mut SCTable)
|
local_data_key!(sctable_key: @@SCTable)
|
||||||
match local_data::get(sctable_key, |k| k.map(|k| *k)) {
|
match local_data::get(sctable_key, |k| k.map(|k| *k)) {
|
||||||
None => {
|
None => {
|
||||||
let new_table = @@mut new_sctable_internal();
|
let new_table = @@new_sctable_internal();
|
||||||
local_data::set(sctable_key,new_table);
|
local_data::set(sctable_key,new_table);
|
||||||
*new_table
|
*new_table
|
||||||
},
|
},
|
||||||
|
@ -835,7 +838,7 @@ pub fn get_resolve_table() -> @RefCell<ResolveTable> {
|
||||||
// adding memoization to possibly resolve 500+ seconds in resolve for librustc (!)
|
// adding memoization to possibly resolve 500+ seconds in resolve for librustc (!)
|
||||||
// FIXME #8215 : currently pub to allow testing
|
// FIXME #8215 : currently pub to allow testing
|
||||||
pub fn resolve_internal(id : Ident,
|
pub fn resolve_internal(id : Ident,
|
||||||
table : &mut SCTable,
|
table : &SCTable,
|
||||||
resolve_table : &mut ResolveTable) -> Name {
|
resolve_table : &mut ResolveTable) -> Name {
|
||||||
let key = (id.name,id.ctxt);
|
let key = (id.name,id.ctxt);
|
||||||
match resolve_table.contains_key(&key) {
|
match resolve_table.contains_key(&key) {
|
||||||
|
@ -1024,7 +1027,7 @@ mod test {
|
||||||
|
|
||||||
// unfold a vector of TestSC values into a SCTable,
|
// unfold a vector of TestSC values into a SCTable,
|
||||||
// returning the resulting index
|
// returning the resulting index
|
||||||
fn unfold_test_sc(tscs : ~[TestSC], tail: SyntaxContext, table : &mut SCTable)
|
fn unfold_test_sc(tscs : ~[TestSC], tail: SyntaxContext, table: &SCTable)
|
||||||
-> SyntaxContext {
|
-> SyntaxContext {
|
||||||
tscs.rev_iter().fold(tail, |tail : SyntaxContext, tsc : &TestSC|
|
tscs.rev_iter().fold(tail, |tail : SyntaxContext, tsc : &TestSC|
|
||||||
{match *tsc {
|
{match *tsc {
|
||||||
|
@ -1070,7 +1073,8 @@ mod test {
|
||||||
|
|
||||||
// extend a syntax context with a sequence of marks given
|
// extend a syntax context with a sequence of marks given
|
||||||
// in a vector. v[0] will be the outermost mark.
|
// in a vector. v[0] will be the outermost mark.
|
||||||
fn unfold_marks(mrks:~[Mrk],tail:SyntaxContext,table: &mut SCTable) -> SyntaxContext {
|
fn unfold_marks(mrks: ~[Mrk], tail: SyntaxContext, table: &SCTable)
|
||||||
|
-> SyntaxContext {
|
||||||
mrks.rev_iter().fold(tail, |tail:SyntaxContext, mrk:&Mrk|
|
mrks.rev_iter().fold(tail, |tail:SyntaxContext, mrk:&Mrk|
|
||||||
{new_mark_internal(*mrk,tail,table)})
|
{new_mark_internal(*mrk,tail,table)})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue