diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-06-22 09:43:20 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-22 09:43:20 -0500 |
commit | 0fb5d634a007f3d0424f95569ac3f83d500d054c (patch) | |
tree | 55550a10bb3a7220282a8905c0eae3962f92ec21 /components/style/restyle_hints.rs | |
parent | 87d991ebd24886051ad1131bdbe3b9019cb1c4b3 (diff) | |
parent | b103e8baa7145a125f5eb02debe0947ecc24776d (diff) | |
download | servo-0fb5d634a007f3d0424f95569ac3f83d500d054c.tar.gz servo-0fb5d634a007f3d0424f95569ac3f83d500d054c.zip |
Auto merge of #11816 - servo:stable-style, r=nox
Make the style crate (almost) build with a stable compiler
<!-- Please describe your changes on the following line: -->
The bulk of this is adding cargo features to make derived implementations of `heapsize` and `serde` traits optional.
"Almost" because `std::intrinsics::discriminant_value` is currently unstable and doesn’t have any stable replacement that I know of. For now, this PR conditionally replaces it with `unimplemented!()`.
r? @nox
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes <s>fix</s> are part of #11815 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not <s>require tests</s> *have tests yet* because that requires https://github.com/servo/servo/issues/11806, but I still want to land this before it bitrots. (Tests should check that the build succeeds with a stable compiler.)
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11816)
<!-- Reviewable:end -->
Diffstat (limited to 'components/style/restyle_hints.rs')
-rw-r--r-- | components/style/restyle_hints.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/components/style/restyle_hints.rs b/components/style/restyle_hints.rs index 3a90852c13a..361d7110d04 100644 --- a/components/style/restyle_hints.rs +++ b/components/style/restyle_hints.rs @@ -50,7 +50,8 @@ bitflags! { /// now to reduce complexity, but it's worth measuring the performance impact (if any) of the /// mStateMask approach. -#[derive(HeapSizeOf, Clone)] +#[derive(Clone)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct ElementSnapshot { pub state: Option<ElementState>, pub attrs: Option<Vec<(AttrIdentifier, AttrValue)>>, @@ -225,7 +226,8 @@ fn combinator_to_restyle_hint(combinator: Option<Combinator>) -> RestyleHint { } } -#[derive(Debug, HeapSizeOf)] +#[derive(Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] struct Sensitivities { pub states: ElementState, pub attrs: bool, @@ -262,14 +264,16 @@ impl Sensitivities { // us to quickly scan through the dependency sites of all style rules and determine the // maximum effect that a given state or attribute change may have on the style of // elements in the document. -#[derive(Debug, HeapSizeOf)] +#[derive(Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] struct Dependency<Impl: SelectorImplExt> { selector: Arc<CompoundSelector<Impl>>, combinator: Option<Combinator>, sensitivities: Sensitivities, } -#[derive(Debug, HeapSizeOf)] +#[derive(Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct DependencySet<Impl: SelectorImplExt> { deps: Vec<Dependency<Impl>>, } |