diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 2769b7503bc5..34e69552f186 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -70,7 +70,7 @@ use std::borrow::ToOwned; use std::cell::{Cell, UnsafeCell}; use std::cmp::max; use std::default::Default; -use std::iter::{self, FilterMap, Peekable}; +use std::iter; use std::mem; use std::ops::Range; use string_cache::{Atom, Namespace, QualName}; @@ -781,7 +781,7 @@ impl Node { } } - pub fn child_elements(&self) -> ChildElementIterator { + pub fn child_elements(&self) -> impl Iterator> { self.children().filter_map(Root::downcast as fn(_) -> _).peekable() } @@ -1111,10 +1111,6 @@ impl LayoutNodeHelpers for LayoutJS { // Iteration and traversal // -pub type ChildElementIterator = - Peekable) -> Option>>>; - pub struct NodeSiblingIterator { current: Option>, } @@ -1460,7 +1456,7 @@ impl Node { 0 => (), // Step 6.1.2 1 => { - if !parent.child_elements().peek().is_none() { + if !parent.child_elements().next().is_none() { return Err(Error::HierarchyRequest); } if let Some(child) = child { @@ -1476,7 +1472,7 @@ impl Node { }, // Step 6.2 NodeTypeId::Element(_) => { - if !parent.child_elements().peek().is_none() { + if !parent.child_elements().next().is_none() { return Err(Error::HierarchyRequest); } if let Some(ref child) = child { @@ -1503,7 +1499,7 @@ impl Node { } }, None => { - if !parent.child_elements().peek().is_none() { + if !parent.child_elements().next().is_none() { return Err(Error::HierarchyRequest); } }, diff --git a/components/script/lib.rs b/components/script/lib.rs index 87abf732bc13..5ca2caa10bf7 100644 --- a/components/script/lib.rs +++ b/components/script/lib.rs @@ -5,6 +5,7 @@ #![feature(as_unsafe_cell)] #![feature(borrow_state)] #![feature(box_syntax)] +#![feature(conservative_impl_trait)] #![feature(const_fn)] #![feature(core_intrinsics)] #![feature(custom_attribute)]