diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2015-10-07 14:55:02 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2015-10-21 11:40:34 +0200 |
commit | 68014af78e8e3f5de4df0f6cc4d63b99c77478f5 (patch) | |
tree | f65b1a66ad8d7ce65042e37cf654da75e1766939 /components/script/dom/htmlformelement.rs | |
parent | 13ea3ac413c511872784ccde416956217746553c (diff) | |
download | servo-68014af78e8e3f5de4df0f6cc4d63b99c77478f5.tar.gz servo-68014af78e8e3f5de4df0f6cc4d63b99c77478f5.zip |
Clean up the cast calls
Diffstat (limited to 'components/script/dom/htmlformelement.rs')
-rw-r--r-- | components/script/dom/htmlformelement.rs | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index 0584cd85c59..be4f092da72 100644 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -17,7 +17,6 @@ use dom::bindings::utils::Reflectable; use dom::document::Document; use dom::element::Element; use dom::event::{Event, EventBubbles, EventCancelable}; -use dom::eventtarget::EventTarget; use dom::htmlbuttonelement::{HTMLButtonElement}; use dom::htmldatalistelement::HTMLDataListElement; use dom::htmlelement::HTMLElement; @@ -163,8 +162,7 @@ impl HTMLFormElement { "submit".to_owned(), EventBubbles::Bubbles, EventCancelable::Cancelable); - let target = self.upcast::<EventTarget>(); - event.r().fire(target); + event.fire(self.upcast()); if event.r().DefaultPrevented() { return; } @@ -316,21 +314,17 @@ impl HTMLFormElement { "reset".to_owned(), EventBubbles::Bubbles, EventCancelable::Cancelable); - let target = self.upcast::<EventTarget>(); - event.r().fire(target); + event.fire(self.upcast()); if event.r().DefaultPrevented() { return; } - let node = self.upcast::<Node>(); - // TODO: This is an incorrect way of getting controls owned // by the form, but good enough until html5ever lands - for child in node.traverse_preorder() { + for child in self.upcast::<Node>().traverse_preorder() { match child.r().type_id() { NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLInputElement)) => { - let input = child.downcast::<HTMLInputElement>().unwrap(); - input.reset() + child.downcast::<HTMLInputElement>().unwrap().reset(); } // TODO HTMLKeygenElement unimplemented //NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLKeygenElement)) => { @@ -342,8 +336,7 @@ impl HTMLFormElement { {} } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTextAreaElement)) => { - let textarea = child.downcast::<HTMLTextAreaElement>().unwrap(); - textarea.reset() + child.downcast::<HTMLTextAreaElement>().unwrap().reset(); } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLOutputElement)) => { // Unimplemented @@ -484,13 +477,7 @@ pub trait FormControl: DerivedFrom<Element> + Reflectable { _ => () } } - let node = elem.upcast::<Node>(); - for ancestor in node.ancestors() { - if let Some(ancestor) = ancestor.downcast::<HTMLFormElement>() { - return Some(Root::from_ref(ancestor)) - } - } - None + elem.upcast::<Node>().ancestors().filter_map(Root::downcast).next() } fn get_form_attribute<InputFn, OwnerFn>(&self, @@ -509,7 +496,7 @@ pub trait FormControl: DerivedFrom<Element> + Reflectable { } fn to_element(&self) -> &Element { - self.upcast::<Element>() + self.upcast() } } |