diff --git a/components/style/dom.rs b/components/style/dom.rs index b1a12307311..1916e8db730 100644 --- a/components/style/dom.rs +++ b/components/style/dom.rs @@ -756,11 +756,18 @@ pub trait TElement /// element-backed pseudo-element, in which case we return the originating /// element. fn rule_hash_target(&self) -> Self { - let is_implemented_pseudo = - self.implemented_pseudo_element().is_some(); - - if is_implemented_pseudo { - self.closest_non_native_anonymous_ancestor().unwrap() + if let Some(pseudo) = self.implemented_pseudo_element() { + match self.closest_non_native_anonymous_ancestor() { + Some(e) => e, + None => { + panic!( + "Trying to collect rules for a detached pseudo-element: \ + {:?} {:?}", + pseudo, + self, + ) + } + } } else { *self }