aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2013-10-16 19:22:44 +0100
committerSimon Sapin <simon.sapin@exyr.org>2013-10-16 19:22:44 +0100
commit6d808fbdd0b1f1ed383752c85653ceb8370fe22d (patch)
tree2fcd010ded977bba3bd546909a4523a061dcac5b
parent6c41be9c13ef3c82fdc5a88cfbbcc0719c988cb8 (diff)
downloadservo-6d808fbdd0b1f1ed383752c85653ceb8370fe22d.tar.gz
servo-6d808fbdd0b1f1ed383752c85653ceb8370fe22d.zip
Move AbastractNode::is_element to the TreeNodeRef trait.
-rw-r--r--src/components/main/css/node_style.rs2
-rw-r--r--src/components/main/css/node_util.rs2
-rw-r--r--src/components/main/css/select_handler.rs2
-rw-r--r--src/components/main/layout/box.rs2
-rw-r--r--src/components/script/dom/element.rs2
-rw-r--r--src/components/script/dom/node.rs14
-rw-r--r--src/components/style/selector_matching.rs2
-rw-r--r--src/components/util/tree.rs2
8 files changed, 17 insertions, 11 deletions
diff --git a/src/components/main/css/node_style.rs b/src/components/main/css/node_style.rs
index d64e59134c4..c4f38fb566c 100644
--- a/src/components/main/css/node_style.rs
+++ b/src/components/main/css/node_style.rs
@@ -9,6 +9,8 @@ use layout::incremental::RestyleDamage;
use newcss::complete::CompleteStyle;
use script::dom::node::{AbstractNode, LayoutView};
+use servo_util::tree::TreeNodeRef;
+
/// Node mixin providing `style` method that returns a `NodeStyle`
pub trait StyledNode {
diff --git a/src/components/main/css/node_util.rs b/src/components/main/css/node_util.rs
index e76d2db0607..f76a079464c 100644
--- a/src/components/main/css/node_util.rs
+++ b/src/components/main/css/node_util.rs
@@ -8,6 +8,8 @@ use std::cast;
use std::cell::Cell;
use newcss::complete::CompleteSelectResults;
use script::dom::node::{AbstractNode, LayoutView};
+use servo_util::tree::TreeNodeRef;
+
pub trait NodeUtil<'self> {
fn get_css_select_results(self) -> &'self CompleteSelectResults;
diff --git a/src/components/main/css/select_handler.rs b/src/components/main/css/select_handler.rs
index 77038c38b88..75cce0e0d0c 100644
--- a/src/components/main/css/select_handler.rs
+++ b/src/components/main/css/select_handler.rs
@@ -9,7 +9,7 @@
use std::str::eq_slice;
use newcss::select::SelectHandler;
use script::dom::node::{AbstractNode, LayoutView};
-use servo_util::tree::ElementLike;
+use servo_util::tree::{TreeNodeRef, ElementLike};
pub struct NodeSelectHandler {
node: AbstractNode<LayoutView>,
diff --git a/src/components/main/layout/box.rs b/src/components/main/layout/box.rs
index 179be6169a4..9d1491c11fe 100644
--- a/src/components/main/layout/box.rs
+++ b/src/components/main/layout/box.rs
@@ -38,7 +38,7 @@ use script::dom::node::{AbstractNode, LayoutView};
use servo_net::image::holder::ImageHolder;
use servo_net::local_image_cache::LocalImageCache;
use servo_util::range::*;
-use servo_util::tree::ElementLike;
+use servo_util::tree::{TreeNodeRef, ElementLike};
use extra::url::Url;
/// Render boxes (`struct RenderBox`) are the leaves of the layout tree. They cannot position
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs
index d5e3755913b..fb6cb9e8d2a 100644
--- a/src/components/script/dom/element.rs
+++ b/src/components/script/dom/element.rs
@@ -14,7 +14,7 @@ use dom::node::{ElementNodeTypeId, Node, ScriptView, AbstractNode};
use layout_interface::{ContentBoxQuery, ContentBoxResponse, ContentBoxesQuery};
use layout_interface::{ContentBoxesResponse};
use newcss::stylesheet::Stylesheet;
-use servo_util::tree::ElementLike;
+use servo_util::tree::{TreeNodeRef, ElementLike};
use js::jsapi::{JSContext, JSObject};
diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs
index d661e9d53d1..db5ff6c88da 100644
--- a/src/components/script/dom/node.rs
+++ b/src/components/script/dom/node.rs
@@ -154,6 +154,13 @@ impl<View> TreeNodeRef<Node<View>> for AbstractNode<View> {
fn with_mut_base<R>(&self, callback: &fn(&mut Node<View>) -> R) -> R {
self.transmute_mut(callback)
}
+
+ fn is_element(self) -> bool {
+ match self.type_id() {
+ ElementNodeTypeId(*) => true,
+ _ => false
+ }
+ }
}
impl<View> TreeNodeRefAsElement<Node<View>, Element> for AbstractNode<View> {
@@ -317,13 +324,6 @@ impl<'self, View> AbstractNode<View> {
self.transmute_mut(f)
}
- pub fn is_element(self) -> bool {
- match self.type_id() {
- ElementNodeTypeId(*) => true,
- _ => false
- }
- }
-
// FIXME: This should be doing dynamic borrow checking for safety.
pub fn with_imm_element<R>(self, f: &fn(&Element) -> R) -> R {
if !self.is_element() {
diff --git a/src/components/style/selector_matching.rs b/src/components/style/selector_matching.rs
index 3c2b3a5812c..54b38094d24 100644
--- a/src/components/style/selector_matching.rs
+++ b/src/components/style/selector_matching.rs
@@ -11,7 +11,7 @@ use media_queries::{Device, Screen};
use properties::{PropertyDeclaration, PropertyDeclarationBlock};
use script::dom::node::{AbstractNode, ScriptView};
use script::dom::element::Element;
-use servo_util::tree::ElementLike;
+use servo_util::tree::{TreeNodeRef, ElementLike};
pub enum StylesheetOrigin {
diff --git a/src/components/util/tree.rs b/src/components/util/tree.rs
index 42125743f7c..12ac22dd45b 100644
--- a/src/components/util/tree.rs
+++ b/src/components/util/tree.rs
@@ -248,6 +248,8 @@ pub trait TreeNodeRef<Node>: Clone {
gather(self, &mut nodes, true, prune);
TreeIterator::new(nodes)
}
+
+ fn is_element(self) -> bool;
}
pub trait TreeNodeRefAsElement<Node, E: ElementLike>: TreeNodeRef<Node> {