Change LengthOrPercentageOrAutoOrContent to use NoCalcLength

This commit is contained in:
Ravi Shankar 2017-01-24 20:22:33 +05:30
parent 39ae0bbf47
commit 8d09d64856
2 changed files with 5 additions and 5 deletions

View file

@ -57,7 +57,7 @@
<%helpers:shorthand name="flex" sub_properties="flex-grow flex-shrink flex-basis" extra_prefixes="webkit"
spec="https://drafts.csswg.org/css-flexbox/#flex-property">
use parser::Parse;
use values::specified::{Number, Length, LengthOrPercentageOrAutoOrContent};
use values::specified::{Number, NoCalcLength, LengthOrPercentageOrAutoOrContent};
pub fn parse_flexibility(input: &mut Parser)
-> Result<(Number, Option<Number>),()> {
@ -101,7 +101,7 @@
Ok(Longhands {
flex_grow: grow.or(Some(Number(1.0))),
flex_shrink: shrink.or(Some(Number(1.0))),
flex_basis: basis.or(Some(LengthOrPercentageOrAutoOrContent::Length(Length::zero())))
flex_basis: basis.or(Some(LengthOrPercentageOrAutoOrContent::Length(NoCalcLength::zero())))
})
}

View file

@ -1134,7 +1134,7 @@ pub type LengthOrAuto = Either<Length, Auto>;
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
pub enum LengthOrPercentageOrAutoOrContent {
/// A `<length>`.
Length(Length),
Length(NoCalcLength),
/// A percentage.
Percentage(Percentage),
/// A `calc` node.
@ -1172,11 +1172,11 @@ impl Parse for LengthOrPercentageOrAutoOrContent {
let context = AllowedNumericType::NonNegative;
match try!(input.next()) {
Token::Dimension(ref value, ref unit) if context.is_ok(value.value) =>
Length::parse_dimension(value.value, unit).map(LengthOrPercentageOrAutoOrContent::Length),
NoCalcLength::parse_dimension(value.value, unit).map(LengthOrPercentageOrAutoOrContent::Length),
Token::Percentage(ref value) if context.is_ok(value.unit_value) =>
Ok(LengthOrPercentageOrAutoOrContent::Percentage(Percentage(value.unit_value))),
Token::Number(ref value) if value.value == 0. =>
Ok(LengthOrPercentageOrAutoOrContent::Length(Length::zero())),
Ok(LengthOrPercentageOrAutoOrContent::Length(NoCalcLength::zero())),
Token::Ident(ref value) if value.eq_ignore_ascii_case("auto") =>
Ok(LengthOrPercentageOrAutoOrContent::Auto),
Token::Ident(ref value) if value.eq_ignore_ascii_case("content") =>