Auto merge of #20131 - servo:moz-tab-size, r=emilio

Replace NonNegativeLengthOrNumber by a specific type for -moz-tab-size

This is the only use of this type.

<!-- 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/20131)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-02-27 12:17:43 -05:00 committed by GitHub
commit 030509e66b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 49 additions and 28 deletions

View file

@ -64,6 +64,7 @@ use values::computed::effects::{BoxShadow, Filter, SimpleShadow};
use values::computed::outline::OutlineStyle;
use values::generics::column::ColumnCount;
use values::generics::position::ZIndex;
use values::generics::text::MozTabSize;
use values::generics::transform::TransformStyle;
use computed_values::border_style;
@ -4792,13 +4793,11 @@ fn static_assert() {
#[allow(non_snake_case)]
pub fn set__moz_tab_size(&mut self, v: longhands::_moz_tab_size::computed_value::T) {
use values::Either;
match v {
Either::First(non_negative_number) => {
MozTabSize::Number(non_negative_number) => {
self.gecko.mTabSize.set_value(CoordDataValue::Factor(non_negative_number.0));
}
Either::Second(non_negative_length) => {
MozTabSize::Length(non_negative_length) => {
self.gecko.mTabSize.set(non_negative_length);
}
}
@ -4806,11 +4805,9 @@ fn static_assert() {
#[allow(non_snake_case)]
pub fn clone__moz_tab_size(&self) -> longhands::_moz_tab_size::computed_value::T {
use values::Either;
match self.gecko.mTabSize.as_value() {
CoordDataValue::Coord(coord) => Either::Second(Au(coord).into()),
CoordDataValue::Factor(number) => Either::First(From::from(number)),
CoordDataValue::Coord(coord) => MozTabSize::Length(Au(coord).into()),
CoordDataValue::Factor(number) => MozTabSize::Number(From::from(number)),
_ => unreachable!(),
}
}

View file

@ -487,11 +487,13 @@ ${helpers.predefined_type(
)}
${helpers.predefined_type(
"-moz-tab-size", "length::NonNegativeLengthOrNumber",
"::values::Either::First(From::from(8.0))",
products="gecko", animation_value_type="::values::computed::length::NonNegativeLengthOrNumber",
spec="https://drafts.csswg.org/css-text-3/#tab-size-property")}
"-moz-tab-size",
"MozTabSize",
"generics::text::MozTabSize::Number(From::from(8.0))",
products="gecko",
animation_value_type="AnimatedMozTabSize",
spec="https://drafts.csswg.org/css-text-3/#tab-size-property",
)}
// CSS Compatibility
// https://compat.spec.whatwg.org