Auto merge of #19294 - emilio:debug-detached-pseudo, r=heycam

style: Collect more debugging info when collecting rules of detached pseudos.

Called Option::unwrap() on a None value is not a helpful crash message.

This will hopefully help figure out what is causing bug 1418856.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19294)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-11-20 02:29:59 -06:00 committed by GitHub
commit af6c2f93b9

View file

@ -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
}