Remove helper traits

Now that JSRef<T> is gone, there is no need to have helper traits.

On components/script/*.rs:

    # Remove imports.
    /^ *use dom::[a-z]+::\{.*Helpers/ {
        s/\{(Raw[^L]|[^L][^a])[a-zA-Z]+Helpers, /\{/
        s/, (Raw[^L]|[^L][^a])[a-zA-Z]+Helpers([,}])/\2/g
        s/\{([a-zA-Z]+)\}/\1/
        /\{\}/d
        s/::self;$/;/
    }
    /^ *use dom::[a-z]+::\{?(Raw[^L]|[^L][^a])[a-zA-Z]+Helpers\}?;$/d

On components/script/dom/*.rs:

    # Ignore layout things.
    /^(pub )?(impl|trait).*Layout.* \{/,/^}$/ { P; D; }

    # Delete helpers traits.
    /^(pub )?trait ([^L][^ ]|L[^a])[^ ]+Helpers(<'a>)? \{$/,/^\}$/D

    # Patch private helpers.
    /^impl.*Private.*Helpers/,/^\}$/ {
        s/^impl<'a> Private([^L][^ ]|L[^a])[^ ]+Helpers(<'a>)? for &'a ([^ ]+) \{$/impl \3 {/
        /^ *(unsafe )?fn .*\(self.*[<&]'a/ {
            s/&'a /\&/g
            s/<'a, /</g
        }
        /^ *(unsafe )?fn /s/\(self([,)])/\(\&self\1/
    }

    # Patch public helpers.
    /^impl.*Helpers/,/^\}$/ {
        s/^impl(<'a>)? ([^L][^ ]|L[^a])[^ ]+Helpers(<'a>)? for (&'a )?([^ ]+) \{$/impl \5 {/
        /^ *(unsafe )?fn .*\(self.*[<&]'a/ {
            s/&'a /\&/g
            s/<'a, /</g
        }
        /^ *(unsafe )?fn .*\(&?self[,)]/s/(unsafe )?fn/pub &/
        /^ *pub (unsafe )?fn /s/\(self([,)])/\(\&self\1/
    }

The few error cases were then fixed by hand.
This commit is contained in:
Anthony Ramine 2015-08-27 01:22:42 +02:00
parent 1384ff5e9f
commit c831c2c0a5
90 changed files with 597 additions and 1284 deletions

View file

@ -13,7 +13,7 @@ use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::js::{JS, MutHeap};
use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::document::{Document, DocumentHelpers};
use dom::document::Document;
use dom::node::Node;
use std::rc::Rc;
@ -255,29 +255,10 @@ impl<'a> TreeWalkerMethods for &'a TreeWalker {
type NodeAdvancer<'a> = Fn(&Node) -> Option<Root<Node>> + 'a;
trait PrivateTreeWalkerHelpers {
fn traverse_children<F, G>(self,
next_child: F,
next_sibling: G)
-> Fallible<Option<Root<Node>>>
where F: Fn(&Node) -> Option<Root<Node>>,
G: Fn(&Node) -> Option<Root<Node>>;
fn traverse_siblings<F, G>(self,
next_child: F,
next_sibling: G)
-> Fallible<Option<Root<Node>>>
where F: Fn(&Node) -> Option<Root<Node>>,
G: Fn(&Node) -> Option<Root<Node>>;
fn is_root_node(self, node: &Node) -> bool;
fn is_current_node(self, node: &Node) -> bool;
fn first_following_node_not_following_root(self, node: &Node)
-> Option<Root<Node>>;
fn accept_node(self, node: &Node) -> Fallible<u16>;
}
impl<'a> PrivateTreeWalkerHelpers for &'a TreeWalker {
impl TreeWalker {
// https://dom.spec.whatwg.org/#concept-traverse-children
fn traverse_children<F, G>(self,
fn traverse_children<F, G>(&self,
next_child: F,
next_sibling: G)
-> Fallible<Option<Root<Node>>>
@ -352,7 +333,7 @@ impl<'a> PrivateTreeWalkerHelpers for &'a TreeWalker {
}
// https://dom.spec.whatwg.org/#concept-traverse-siblings
fn traverse_siblings<F, G>(self,
fn traverse_siblings<F, G>(&self,
next_child: F,
next_sibling: G)
-> Fallible<Option<Root<Node>>>
@ -414,7 +395,7 @@ impl<'a> PrivateTreeWalkerHelpers for &'a TreeWalker {
}
// https://dom.spec.whatwg.org/#concept-tree-following
fn first_following_node_not_following_root(self, node: &Node)
fn first_following_node_not_following_root(&self, node: &Node)
-> Option<Root<Node>> {
// "An object A is following an object B if A and B are in the same tree
// and A comes after B in tree order."
@ -441,7 +422,7 @@ impl<'a> PrivateTreeWalkerHelpers for &'a TreeWalker {
}
// https://dom.spec.whatwg.org/#concept-node-filter
fn accept_node(self, node: &Node) -> Fallible<u16> {
fn accept_node(&self, node: &Node) -> Fallible<u16> {
// "To filter node run these steps:"
// "1. Let n be node's nodeType attribute value minus 1."
let n = node.NodeType() - 1;
@ -461,11 +442,11 @@ impl<'a> PrivateTreeWalkerHelpers for &'a TreeWalker {
}
}
fn is_root_node(self, node: &Node) -> bool {
fn is_root_node(&self, node: &Node) -> bool {
JS::from_ref(node) == self.root_node
}
fn is_current_node(self, node: &Node) -> bool {
fn is_current_node(&self, node: &Node) -> bool {
JS::from_ref(node) == self.current_node.get()
}
}