Unwrap pointers and miscellany for unrooted_must_root check

This commit is contained in:
Manish Goregaokar 2014-09-16 23:31:40 +05:30
parent bded5c3703
commit d241826987
3 changed files with 9 additions and 0 deletions

View file

@ -62,6 +62,12 @@ impl LintPass for TransmutePass {
} }
fn lint_unrooted_ty(cx: &Context, ty: &ast::Ty, warning: &str) { fn lint_unrooted_ty(cx: &Context, ty: &ast::Ty, warning: &str) {
let ty = match ty.node {
ast::TyBox(ref t) | ast::TyUniq(ref t) |
ast::TyVec(ref t) | ast::TyFixedLengthVec(ref t, _) |
ast::TyPtr(ast::MutTy { ty: ref t, ..}) | ast::TyRptr(_, ast::MutTy { ty: ref t, ..}) => &**t,
_ => ty
};
match ty.node { match ty.node {
ast::TyPath(_, _, id) => { ast::TyPath(_, _, id) => {
match cx.tcx.def_map.borrow().get_copy(&id) { match cx.tcx.def_map.borrow().get_copy(&id) {

View file

@ -113,6 +113,7 @@ pub struct JS<T> {
} }
impl<T> PartialEq for JS<T> { impl<T> PartialEq for JS<T> {
#[allow(unrooted_must_root)]
fn eq(&self, other: &JS<T>) -> bool { fn eq(&self, other: &JS<T>) -> bool {
self.ptr == other.ptr self.ptr == other.ptr
} }
@ -373,6 +374,7 @@ impl RootCollection {
} }
/// Create a new stack-bounded root that will not outlive this collection /// Create a new stack-bounded root that will not outlive this collection
#[allow(unrooted_must_root)]
fn new_root<'a, 'b, T: Reflectable>(&'a self, unrooted: &JS<T>) -> Root<'a, 'b, T> { fn new_root<'a, 'b, T: Reflectable>(&'a self, unrooted: &JS<T>) -> Root<'a, 'b, T> {
Root::new(self, unrooted) Root::new(self, unrooted)
} }

View file

@ -21,6 +21,7 @@ use dom::text::Text;
use servo_util::atom::Atom; use servo_util::atom::Atom;
use servo_util::namespace; use servo_util::namespace;
#[allow(unrooted_must_root)]
pub fn serialize(iterator: &mut NodeIterator) -> String { pub fn serialize(iterator: &mut NodeIterator) -> String {
let mut html = String::new(); let mut html = String::new();
let mut open_elements: Vec<String> = vec!(); let mut open_elements: Vec<String> = vec!();