style: Simplify calc expressions earlier.

This simplifies a bit the code, and guarantees that all calc()s have percentages
and lengths.

I also wanted to remove unclamped_length() / specified_percentage() (for the
same reason as the above patch), but they're needed for animations for now. When
I implement min() / max() for <length-percentage> they'll be fixed.

Differential Revision: https://phabricator.services.mozilla.com/D60194
This commit is contained in:
Emilio Cobos Álvarez 2020-01-23 09:18:39 +00:00
parent 5237d4fac8
commit 16e5331950
No known key found for this signature in database
GPG key ID: E1152D0994E4BF8A
7 changed files with 67 additions and 140 deletions

View file

@ -7,6 +7,7 @@
use super::{Animate, Procedure};
use crate::values::computed::length::LengthPercentage;
use crate::values::computed::Percentage;
use style_traits::values::specified::AllowedNumericType;
/// <https://drafts.csswg.org/css-transitions/#animtype-lpcalc>
impl Animate for LengthPercentage {
@ -27,8 +28,8 @@ impl Animate for LengthPercentage {
let percentage =
animate_percentage_half(self.specified_percentage(), other.specified_percentage())?;
// Gets clamped as needed after the animation, so no need to specify any
// particular AllowedNumericType.
Ok(LengthPercentage::new_calc(length, percentage))
// Gets clamped as needed after the animation if needed, so no need to
// specify any particular AllowedNumericType.
Ok(LengthPercentage::new_calc(length, percentage, AllowedNumericType::All))
}
}