style: Add code to make part rules affect the style of the elements.

I still haven't implemented each_part(), so this will do nothing yet.

The cascade order stuff is fishy, I know, and I'll fix in a followup if it's
fine with you. I moved the sorting of the rules to rule_collector, since it
seemed to me it was better that way that duplicating the code, and those
SelectorMap functions only have a single caller anyway.

Differential Revision: https://phabricator.services.mozilla.com/D32647
This commit is contained in:
Emilio Cobos Álvarez 2019-06-11 17:42:41 +00:00
parent 39de0a068e
commit 7139a4185a
No known key found for this signature in database
GPG key ID: E1152D0994E4BF8A
6 changed files with 100 additions and 27 deletions

View file

@ -279,13 +279,13 @@ where
/// Runs F with a given shadow host which is the root of the tree whose
/// rules we're matching.
#[inline]
pub fn with_shadow_host<F, E, R>(&mut self, host: E, f: F) -> R
pub fn with_shadow_host<F, E, R>(&mut self, host: Option<E>, f: F) -> R
where
E: Element,
F: FnOnce(&mut Self) -> R,
{
let original_host = self.current_host.take();
self.current_host = Some(host.opaque());
self.current_host = host.map(|h| h.opaque());
let result = f(self);
self.current_host = original_host;
result