Auto merge of #19822 - emilio:less-match-public, r=KiChjang

style: More tiny selector-matching cleanup

See each commit individually.

<!-- 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/19822)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-01-19 23:05:18 -06:00 committed by GitHub
commit 6fc71a7644
4 changed files with 47 additions and 36 deletions

View file

@ -100,7 +100,7 @@ where
Impl: SelectorImpl,
{
/// Input with the matching mode we should use when matching selectors.
pub matching_mode: MatchingMode,
matching_mode: MatchingMode,
/// Input with the bloom filter used to fast-reject selectors.
pub bloom_filter: Option<&'a BloomFilter>,
/// An optional cache to speed up nth-index-like selectors.
@ -204,6 +204,12 @@ where
self.quirks_mode
}
/// The matching-mode for this selector-matching operation.
#[inline]
pub fn matching_mode(&self) -> MatchingMode {
self.matching_mode
}
/// The case-sensitivity for class and ID selectors
#[inline]
pub fn classes_and_ids_case_sensitivity(&self) -> CaseSensitivity {

View file

@ -285,7 +285,7 @@ where
{
// If this is the special pseudo-element mode, consume the ::pseudo-element
// before proceeding, since the caller has already handled that part.
if context.matching_mode == MatchingMode::ForStatelessPseudoElement &&
if context.matching_mode() == MatchingMode::ForStatelessPseudoElement &&
!context.is_nested() {
// Consume the pseudo.
match *iter.next().unwrap() {
@ -349,7 +349,7 @@ fn matches_hover_and_active_quirk<Impl: SelectorImpl>(
// This compound selector had a pseudo-element to the right that we
// intentionally skipped.
if rightmost == Rightmost::Yes &&
context.matching_mode == MatchingMode::ForStatelessPseudoElement {
context.matching_mode() == MatchingMode::ForStatelessPseudoElement {
return MatchesHoverAndActiveQuirk::No;
}

View file

@ -159,7 +159,6 @@ impl SelectorMap<Rule> {
rule_hash_target: E,
matching_rules_list: &mut ApplicableDeclarationList,
context: &mut MatchingContext<E::Impl>,
quirks_mode: QuirksMode,
flags_setter: &mut F,
cascade_level: CascadeLevel,
)
@ -171,45 +170,56 @@ impl SelectorMap<Rule> {
return
}
// At the end, we're going to sort the rules that we added, so remember where we began.
let quirks_mode = context.quirks_mode();
// At the end, we're going to sort the rules that we added, so remember
// where we began.
let init_len = matching_rules_list.len();
if let Some(id) = rule_hash_target.get_id() {
if let Some(rules) = self.id_hash.get(&id, quirks_mode) {
SelectorMap::get_matching_rules(element,
rules,
matching_rules_list,
context,
flags_setter,
cascade_level)
SelectorMap::get_matching_rules(
element,
rules,
matching_rules_list,
context,
flags_setter,
cascade_level,
)
}
}
rule_hash_target.each_class(|class| {
if let Some(rules) = self.class_hash.get(&class, quirks_mode) {
SelectorMap::get_matching_rules(element,
rules,
matching_rules_list,
context,
flags_setter,
cascade_level)
SelectorMap::get_matching_rules(
element,
rules,
matching_rules_list,
context,
flags_setter,
cascade_level,
)
}
});
if let Some(rules) = self.local_name_hash.get(rule_hash_target.get_local_name()) {
SelectorMap::get_matching_rules(element,
rules,
matching_rules_list,
context,
flags_setter,
cascade_level)
SelectorMap::get_matching_rules(
element,
rules,
matching_rules_list,
context,
flags_setter,
cascade_level,
)
}
SelectorMap::get_matching_rules(element,
&self.other,
matching_rules_list,
context,
flags_setter,
cascade_level);
SelectorMap::get_matching_rules(
element,
&self.other,
matching_rules_list,
context,
flags_setter,
cascade_level,
);
// Sort only the rules we just added.
matching_rules_list[init_len..].sort_unstable_by_key(|block| (block.specificity, block.source_order()));
@ -247,7 +257,7 @@ impl<T: SelectorMapEntry> SelectorMap<T> {
pub fn insert(
&mut self,
entry: T,
quirks_mode: QuirksMode
quirks_mode: QuirksMode,
) -> Result<(), FailedAllocationError> {
self.count += 1;

View file

@ -1236,7 +1236,6 @@ impl Stylist {
rule_hash_target,
applicable_declarations,
context,
self.quirks_mode,
flags_setter,
CascadeLevel::UANormal
);
@ -1274,7 +1273,6 @@ impl Stylist {
rule_hash_target,
applicable_declarations,
context,
self.quirks_mode,
flags_setter,
CascadeLevel::UserNormal,
);
@ -1305,7 +1303,6 @@ impl Stylist {
rule_hash_target,
applicable_declarations,
context,
self.quirks_mode,
flags_setter,
CascadeLevel::AuthorNormal
);
@ -1327,7 +1324,7 @@ impl Stylist {
// as `context`, write a test-case of :visited not working on
// Shadow DOM and fix it!
let mut matching_context = MatchingContext::new(
context.matching_mode,
context.matching_mode(),
context.bloom_filter,
context.nth_index_cache.as_mut().map(|s| &mut **s),
stylist.quirks_mode,
@ -1339,7 +1336,6 @@ impl Stylist {
rule_hash_target,
applicable_declarations,
&mut matching_context,
stylist.quirks_mode,
flags_setter,
CascadeLevel::AuthorNormal,
);
@ -1356,7 +1352,6 @@ impl Stylist {
rule_hash_target,
applicable_declarations,
context,
self.quirks_mode,
flags_setter,
CascadeLevel::AuthorNormal
);