Introduce [Abstract] to mark non-leaf interfaces

Some interfaces like Node, CharacterData and HTMLTableCellElement are never
instantiated directly, only their descendant interfaces are. Those are marked
with [Abstract] to set their type_id to None instead of having dummy values
in the TypeId enums.
This commit is contained in:
Anthony Ramine 2015-09-11 23:55:20 +02:00
parent 941f7dc04b
commit c25085f68a
21 changed files with 26 additions and 48 deletions

View file

@ -9,9 +9,7 @@ use dom::element::ElementTypeId;
use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::HTMLElementTypeId;
use dom::htmlmediaelement::HTMLMediaElementTypeId::HTMLAudioElement;
use dom::htmlmediaelement::HTMLMediaElementTypeId::HTMLMediaElement;
use dom::htmlmediaelement::HTMLMediaElementTypeId::HTMLVideoElement;
use dom::htmltablecellelement::HTMLTableCellElementTypeId::HTMLTableCellElement;
use dom::htmltablecellelement::HTMLTableCellElementTypeId::HTMLTableDataCellElement;
use dom::htmltablecellelement::HTMLTableCellElementTypeId::HTMLTableHeaderCellElement;
use dom::node::NodeTypeId;
@ -249,13 +247,5 @@ pub fn heap_size_of_eventtarget(target: &EventTarget) -> usize {
heap_size_of_self_and_children(DocumentTypeCast::to_ref(target).unwrap()),
&EventTargetTypeId::Node(NodeTypeId::DocumentFragment) =>
heap_size_of_self_and_children(DocumentFragmentCast::to_ref(target).unwrap()),
&EventTargetTypeId::EventTarget |
&EventTargetTypeId::Node(NodeTypeId::Node) |
&EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(
HTMLElementTypeId::HTMLMediaElement(HTMLMediaElement)))) |
&EventTargetTypeId::Node(NodeTypeId::Element(ElementTypeId::HTMLElement(
HTMLElementTypeId::HTMLTableCellElement(HTMLTableCellElement)))) => {
unreachable!()
},
}
}