mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01:00
Disambiguate trait object reference syntax.
This commit is contained in:
parent
121904dd89
commit
76b8810a86
3 changed files with 31 additions and 31 deletions
|
@ -25,7 +25,7 @@ pub trait Actor : Any {
|
||||||
fn name(&self) -> String;
|
fn name(&self) -> String;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> AnyMutRefExt<'a> for &'a mut Actor + 'a {
|
impl<'a> AnyMutRefExt<'a> for &'a mut (Actor + 'a) {
|
||||||
fn downcast_mut<T: 'static>(self) -> Option<&'a mut T> {
|
fn downcast_mut<T: 'static>(self) -> Option<&'a mut T> {
|
||||||
if self.is::<T>() {
|
if self.is::<T>() {
|
||||||
unsafe {
|
unsafe {
|
||||||
|
@ -41,7 +41,7 @@ impl<'a> AnyMutRefExt<'a> for &'a mut Actor + 'a {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> AnyRefExt<'a> for &'a Actor + 'a {
|
impl<'a> AnyRefExt<'a> for &'a (Actor + 'a) {
|
||||||
fn is<T: 'static>(self) -> bool {
|
fn is<T: 'static>(self) -> bool {
|
||||||
// This implementation is only needed so long as there's a Rust bug that
|
// This implementation is only needed so long as there's a Rust bug that
|
||||||
// prevents downcast_ref from giving realistic return values.
|
// prevents downcast_ref from giving realistic return values.
|
||||||
|
|
|
@ -1462,7 +1462,7 @@ impl<'a> style::TElement<'a> for JSRef<'a, Element> {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait ActivationElementHelpers<'a> {
|
pub trait ActivationElementHelpers<'a> {
|
||||||
fn as_maybe_activatable(&'a self) -> Option<&'a Activatable + 'a>;
|
fn as_maybe_activatable(&'a self) -> Option<&'a (Activatable + 'a)>;
|
||||||
fn click_in_progress(self) -> bool;
|
fn click_in_progress(self) -> bool;
|
||||||
fn set_click_in_progress(self, click: bool);
|
fn set_click_in_progress(self, click: bool);
|
||||||
fn nearest_activable_element(self) -> Option<Temporary<Element>>;
|
fn nearest_activable_element(self) -> Option<Temporary<Element>>;
|
||||||
|
@ -1470,12 +1470,12 @@ pub trait ActivationElementHelpers<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> ActivationElementHelpers<'a> for JSRef<'a, Element> {
|
impl<'a> ActivationElementHelpers<'a> for JSRef<'a, Element> {
|
||||||
fn as_maybe_activatable(&'a self) -> Option<&'a Activatable + 'a> {
|
fn as_maybe_activatable(&'a self) -> Option<&'a (Activatable + 'a)> {
|
||||||
let node: JSRef<Node> = NodeCast::from_ref(*self);
|
let node: JSRef<Node> = NodeCast::from_ref(*self);
|
||||||
match node.type_id() {
|
match node.type_id() {
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLInputElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLInputElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLInputElement> = HTMLInputElementCast::to_borrowed_ref(self).unwrap();
|
let element: &'a JSRef<'a, HTMLInputElement> = HTMLInputElementCast::to_borrowed_ref(self).unwrap();
|
||||||
Some(element as &'a Activatable + 'a)
|
Some(element as &'a (Activatable + 'a))
|
||||||
},
|
},
|
||||||
_ => {
|
_ => {
|
||||||
None
|
None
|
||||||
|
|
|
@ -145,112 +145,112 @@ pub trait VirtualMethods {
|
||||||
/// method call on the trait object will invoke the corresponding method on the
|
/// method call on the trait object will invoke the corresponding method on the
|
||||||
/// concrete type, propagating up the parent hierarchy unless otherwise
|
/// concrete type, propagating up the parent hierarchy unless otherwise
|
||||||
/// interrupted.
|
/// interrupted.
|
||||||
pub fn vtable_for<'a>(node: &'a JSRef<'a, Node>) -> &'a VirtualMethods + 'a {
|
pub fn vtable_for<'a>(node: &'a JSRef<'a, Node>) -> &'a (VirtualMethods + 'a) {
|
||||||
match node.type_id() {
|
match node.type_id() {
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLAnchorElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLAnchorElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLAnchorElement> = HTMLAnchorElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLAnchorElement> = HTMLAnchorElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLAreaElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLAreaElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLAreaElement> = HTMLAreaElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLAreaElement> = HTMLAreaElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLBodyElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLBodyElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLBodyElement> = HTMLBodyElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLBodyElement> = HTMLBodyElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLButtonElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLButtonElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLButtonElement> = HTMLButtonElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLButtonElement> = HTMLButtonElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLCanvasElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLCanvasElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLCanvasElement> = HTMLCanvasElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLCanvasElement> = HTMLCanvasElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLFieldSetElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLFieldSetElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLFieldSetElement> = HTMLFieldSetElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLFieldSetElement> = HTMLFieldSetElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLImageElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLImageElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLImageElement> = HTMLImageElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLImageElement> = HTMLImageElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLIFrameElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLIFrameElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLIFrameElement> = HTMLIFrameElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLIFrameElement> = HTMLIFrameElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLInputElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLInputElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLInputElement> = HTMLInputElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLInputElement> = HTMLInputElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLLinkElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLLinkElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLLinkElement> = HTMLLinkElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLLinkElement> = HTMLLinkElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLObjectElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLObjectElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLObjectElement> = HTMLObjectElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLObjectElement> = HTMLObjectElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLOptGroupElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLOptGroupElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLOptGroupElement> = HTMLOptGroupElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLOptGroupElement> = HTMLOptGroupElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLOptionElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLOptionElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLOptionElement> = HTMLOptionElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLOptionElement> = HTMLOptionElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLScriptElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLScriptElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLScriptElement> = HTMLScriptElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLScriptElement> = HTMLScriptElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLSelectElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLSelectElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLSelectElement> = HTMLSelectElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLSelectElement> = HTMLSelectElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLStyleElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLStyleElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLStyleElement> = HTMLStyleElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLStyleElement> = HTMLStyleElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLTableElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLTableElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLTableElement> =
|
let element: &'a JSRef<'a, HTMLTableElement> =
|
||||||
HTMLTableElementCast::to_borrowed_ref(node).unwrap();
|
HTMLTableElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLTableDataCellElement) |
|
NodeTypeId::Element(ElementTypeId::HTMLTableDataCellElement) |
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLTableHeaderCellElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLTableHeaderCellElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLTableCellElement> =
|
let element: &'a JSRef<'a, HTMLTableCellElement> =
|
||||||
HTMLTableCellElementCast::to_borrowed_ref(node).unwrap();
|
HTMLTableCellElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLTableRowElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLTableRowElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLTableRowElement> =
|
let element: &'a JSRef<'a, HTMLTableRowElement> =
|
||||||
HTMLTableRowElementCast::to_borrowed_ref(node).unwrap();
|
HTMLTableRowElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLTableSectionElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLTableSectionElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLTableSectionElement> =
|
let element: &'a JSRef<'a, HTMLTableSectionElement> =
|
||||||
HTMLTableSectionElementCast::to_borrowed_ref(node).unwrap();
|
HTMLTableSectionElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLTextAreaElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLTextAreaElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLTextAreaElement> = HTMLTextAreaElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLTextAreaElement> = HTMLTextAreaElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLTitleElement) => {
|
NodeTypeId::Element(ElementTypeId::HTMLTitleElement) => {
|
||||||
let element: &'a JSRef<'a, HTMLTitleElement> =
|
let element: &'a JSRef<'a, HTMLTitleElement> =
|
||||||
HTMLTitleElementCast::to_borrowed_ref(node).unwrap();
|
HTMLTitleElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::Element) => {
|
NodeTypeId::Element(ElementTypeId::Element) => {
|
||||||
let element: &'a JSRef<'a, Element> = ElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, Element> = ElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(_) => {
|
NodeTypeId::Element(_) => {
|
||||||
let element: &'a JSRef<'a, HTMLElement> = HTMLElementCast::to_borrowed_ref(node).unwrap();
|
let element: &'a JSRef<'a, HTMLElement> = HTMLElementCast::to_borrowed_ref(node).unwrap();
|
||||||
element as &'a VirtualMethods + 'a
|
element as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
node as &'a VirtualMethods + 'a
|
node as &'a (VirtualMethods + 'a)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue