mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 17:25:36 +00:00
servo: Merge #12854 - Use impl Trait syntax for Node::child_elements (from nox:impl-trait); r=jdm
Source-Repo: https://github.com/servo/servo Source-Revision: 27d082e5779904a5e68e99841ae1511ff126bacd
This commit is contained in:
parent
c788046d08
commit
8d93fbfdac
@ -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<Item=Root<Element>> {
|
||||
self.children().filter_map(Root::downcast as fn(_) -> _).peekable()
|
||||
}
|
||||
|
||||
@ -1111,10 +1111,6 @@ impl LayoutNodeHelpers for LayoutJS<Node> {
|
||||
// Iteration and traversal
|
||||
//
|
||||
|
||||
pub type ChildElementIterator =
|
||||
Peekable<FilterMap<NodeSiblingIterator,
|
||||
fn(Root<Node>) -> Option<Root<Element>>>>;
|
||||
|
||||
pub struct NodeSiblingIterator {
|
||||
current: Option<Root<Node>>,
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
},
|
||||
|
@ -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)]
|
||||
|
Loading…
Reference in New Issue
Block a user