diff --git a/Cargo.lock b/Cargo.lock index 261cd81b2c7..5d8ccb8eced 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5050,6 +5050,7 @@ dependencies = [ "derive_more", "fxhash", "log", + "new_debug_unreachable", "phf", "phf_codegen", "precomputed-hash", diff --git a/components/selectors/Cargo.toml b/components/selectors/Cargo.toml index bb9efec3a05..884f8c009ac 100644 --- a/components/selectors/Cargo.toml +++ b/components/selectors/Cargo.toml @@ -25,6 +25,7 @@ cssparser = "0.29" derive_more = "0.99" fxhash = "0.2" log = "0.4" +new_debug_unreachable = "1" phf = "0.10" precomputed-hash = "0.1" servo_arc = { version = "0.2", path = "../servo_arc" } diff --git a/components/selectors/matching.rs b/components/selectors/matching.rs index 1628e53b890..c41ff0d362f 100644 --- a/components/selectors/matching.rs +++ b/components/selectors/matching.rs @@ -9,6 +9,7 @@ use crate::parser::{AncestorHashes, Combinator, Component, LocalName}; use crate::parser::{NonTSPseudoClass, Selector, SelectorImpl, SelectorIter, SelectorList}; use crate::tree::Element; use bitflags::bitflags; +use debug_unreachable::debug_unreachable; use log::debug; use smallvec::SmallVec; use std::borrow::Borrow; @@ -832,7 +833,9 @@ where } true }), - Component::Combinator(_) => unreachable!(), + Component::Combinator(_) => unsafe { + debug_unreachable!("Shouldn't try to selector-match combinators") + }, } }