std: Modernize the local_data api
This commit brings the local_data api up to modern rust standards with a few key improvements: * The `pop` and `set` methods have been combined into one method, `replace` * The `get_mut` method has been removed. All interior mutability should be done through `RefCell`. * All functionality is now exposed as a method on the keys themselves. Instead of importing std::local_data, you now use "key.replace()" and "key.get()". * All closures have been removed in favor of RAII functionality. This means that get() and get_mut() no long require closures, but rather return Option<SmartPointer> where the smart pointer takes care of relinquishing the borrow and also implements the necessary Deref traits * The modify() function was removed to cut the local_data interface down to its bare essentials (similarly to how RefCell removed set/get). [breaking-change]
This commit is contained in:
parent
ef6daf9935
commit
ab92ea526d
23 changed files with 444 additions and 661 deletions
|
|
@ -12,7 +12,6 @@ use std::cell::RefCell;
|
|||
use std::char;
|
||||
use std::io;
|
||||
use std::io::{Process, TempDir};
|
||||
use std::local_data;
|
||||
use std::os;
|
||||
use std::str;
|
||||
use std::strbuf::StrBuf;
|
||||
|
|
@ -75,7 +74,7 @@ pub fn run(input: &str,
|
|||
maybe_typed: core::NotTyped(sess),
|
||||
src: input_path,
|
||||
};
|
||||
local_data::set(super::ctxtkey, ctx);
|
||||
super::ctxtkey.replace(Some(ctx));
|
||||
|
||||
let mut v = RustdocVisitor::new(ctx, None);
|
||||
v.visit(&ctx.krate);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue