servo: Merge #18447 - Remove most uses of ComputedValueAsSpecified (from servo:kill-cvas); r=emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 5cc2b4f705e420b156899ed55072ccc11d0e50c0

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 1e210928eef95f3c02c404694e55f84625e13bee
This commit is contained in:
Anthony Ramine 2017-09-11 20:04:12 -05:00
Родитель 7b1ab1a9a0
Коммит 87efab93fb
13 изменённых файлов: 30 добавлений и 58 удалений

Просмотреть файл

@ -342,7 +342,7 @@ impl ToCss for System {
}
/// https://drafts.csswg.org/css-counter-styles/#typedef-symbol
#[derive(Clone, Debug, Eq, PartialEq)]
#[derive(Clone, Debug, Eq, PartialEq, ToComputedValue)]
pub enum Symbol {
/// <string>
String(String),
@ -489,7 +489,7 @@ impl Parse for Fallback {
}
/// https://drafts.csswg.org/css-counter-styles/#descdef-counter-style-symbols
#[derive(Clone, Debug, Eq, PartialEq)]
#[derive(Clone, Debug, Eq, PartialEq, ToComputedValue)]
pub struct Symbols(pub Vec<Symbol>);
impl Parse for Symbols {

Просмотреть файл

@ -30,6 +30,7 @@ pub struct SpecifiedUrl {
/// a property with this specified url value.
pub image_value: Option<RefPtr<ImageValue>>,
}
trivial_to_computed_value!(SpecifiedUrl);
impl SpecifiedUrl {
/// Try to parse a URL from a string value that is a valid CSS token for a

Просмотреть файл

@ -5,7 +5,7 @@
//! Various macro helpers.
macro_rules! trivial_to_computed_value {
($name: ident) => {
($name:ty) => {
impl $crate::values::computed::ToComputedValue for $name {
type ComputedValue = $name;

Просмотреть файл

@ -8,7 +8,6 @@
<%helpers:longhand name="content" boxed="True" animation_value_type="discrete"
spec="https://drafts.csswg.org/css-content/#propdef-content">
use values::computed::ComputedValueAsSpecified;
#[cfg(feature = "gecko")]
use values::generics::CounterStyleOrNone;
#[cfg(feature = "gecko")]
@ -22,8 +21,6 @@
pub use self::computed_value::T as SpecifiedValue;
pub use self::computed_value::ContentItem;
impl ComputedValueAsSpecified for SpecifiedValue {}
pub mod computed_value {
use cssparser;
use std::fmt;
@ -39,8 +36,8 @@
#[cfg(feature = "gecko")]
use values::specified::Attr;
#[derive(Clone, Debug, Eq, PartialEq)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(Clone, Debug, Eq, PartialEq, ToComputedValue)]
pub enum ContentItem {
/// Literal string content.
String(String),
@ -100,8 +97,8 @@
}
}
#[derive(Clone, Debug, Eq, PartialEq)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(Clone, Debug, Eq, PartialEq, ToComputedValue)]
pub enum T {
Normal,
None,

Просмотреть файл

@ -256,17 +256,14 @@ ${helpers.single_keyword("image-rendering",
spec="Nonstandard (internal layout use only)">
use std::fmt;
use style_traits::ToCss;
use values::computed::ComputedValueAsSpecified;
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))]
#[cfg_attr(feature = "servo", derive(Deserialize, HeapSizeOf, Serialize))]
#[derive(Clone, Copy, Debug, Eq, PartialEq, ToComputedValue)]
pub struct SpecifiedValue(pub bool);
pub mod computed_value {
pub type T = super::SpecifiedValue;
}
impl ComputedValueAsSpecified for SpecifiedValue {}
pub fn get_initial_value() -> computed_value::T {
SpecifiedValue(false)

Просмотреть файл

@ -136,8 +136,6 @@ ${helpers.predefined_type("marker-end", "UrlOrNone", "Either::Second(None_)",
animation_value_type="discrete"
products="gecko"
spec="https://www.w3.org/TR/SVG2/painting.html#PaintOrder">
use values::computed::ComputedValueAsSpecified;
use std::fmt;
use style_traits::ToCss;
@ -164,8 +162,8 @@ ${helpers.predefined_type("marker-end", "UrlOrNone", "Either::Second(None_)",
///
/// Higher priority values, i.e. the values specified first,
/// will be painted first (and may be covered by paintings of lower priority)
#[derive(Clone, Copy, Debug, PartialEq)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(Clone, Copy, Debug, PartialEq, ToComputedValue)]
pub struct SpecifiedValue(pub u8);
pub mod computed_value {
@ -258,10 +256,8 @@ ${helpers.predefined_type("marker-end", "UrlOrNone", "Either::Second(None_)",
Ok(())
}
}
impl ComputedValueAsSpecified for SpecifiedValue { }
</%helpers:longhand>
<%helpers:vector_longhand name="-moz-context-properties"
animation_value_type="none"
products="gecko"

Просмотреть файл

@ -33,7 +33,6 @@ ${helpers.single_keyword("list-style-position", "outside inside", animation_valu
<%helpers:longhand name="list-style-type" animation_value_type="discrete" boxed="True"
spec="https://drafts.csswg.org/css-lists/#propdef-list-style-type">
use values::CustomIdent;
use values::computed::ComputedValueAsSpecified;
use values::generics::CounterStyleOrNone;
pub use self::computed_value::T as SpecifiedValue;
@ -42,15 +41,13 @@ ${helpers.single_keyword("list-style-position", "outside inside", animation_valu
use values::generics::CounterStyleOrNone;
/// <counter-style> | <string> | none
#[derive(Clone, Debug, Eq, PartialEq, ToCss)]
#[derive(Clone, Debug, Eq, PartialEq, ToComputedValue, ToCss)]
pub enum T {
CounterStyle(CounterStyleOrNone),
String(String),
}
}
impl ComputedValueAsSpecified for SpecifiedValue {}
#[cfg(feature = "gecko")]
impl SpecifiedValue {
/// Convert from gecko keyword to list-style-type.
@ -144,18 +141,15 @@ ${helpers.single_keyword("list-style-position", "outside inside", animation_valu
use cssparser::serialize_string;
use std::fmt;
use style_traits::ToCss;
use values::computed::ComputedValueAsSpecified;
pub use self::computed_value::T as SpecifiedValue;
pub mod computed_value {
#[derive(Clone, Debug, PartialEq)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(Clone, Debug, PartialEq, ToComputedValue)]
pub struct T(pub Vec<(String, String)>);
}
impl ComputedValueAsSpecified for SpecifiedValue {}
impl ToCss for SpecifiedValue {
fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
if self.0.is_empty() {

Просмотреть файл

@ -9,12 +9,9 @@
<%helpers:longhand name="cursor" boxed="${product == 'gecko'}" animation_value_type="discrete"
spec="https://drafts.csswg.org/css-ui/#cursor">
pub use self::computed_value::T as SpecifiedValue;
use values::computed::ComputedValueAsSpecified;
#[cfg(feature = "gecko")]
use values::specified::url::SpecifiedUrl;
impl ComputedValueAsSpecified for SpecifiedValue {}
pub mod computed_value {
#[cfg(feature = "gecko")]
use std::fmt;
@ -25,7 +22,7 @@
use values::specified::url::SpecifiedUrl;
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(Clone, Copy, Debug, PartialEq, ToCss)]
#[derive(Clone, Copy, Debug, PartialEq, ToComputedValue, ToCss)]
pub enum Keyword {
Auto,
Cursor(Cursor),
@ -35,14 +32,14 @@
pub type T = Keyword;
#[cfg(feature = "gecko")]
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, ToComputedValue)]
pub struct Image {
pub url: SpecifiedUrl,
pub hotspot: Option<(f32, f32)>,
}
#[cfg(feature = "gecko")]
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, ToComputedValue)]
pub struct T {
pub images: Vec<Image>,
pub keyword: Keyword,

Просмотреть файл

@ -146,12 +146,10 @@ ${helpers.single_keyword("unicode-bidi",
spec="https://drafts.csswg.org/css-text-decor/#propdef-text-decoration-line">
use std::fmt;
use style_traits::ToCss;
use values::computed::ComputedValueAsSpecified;
impl ComputedValueAsSpecified for SpecifiedValue {}
bitflags! {
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(ToComputedValue)]
pub flags SpecifiedValue: u8 {
const NONE = 0,
const UNDERLINE = 0x01,

Просмотреть файл

@ -49,12 +49,10 @@ ${helpers.single_keyword("-moz-window-shadow", "none default menu tooltip sheet"
spec="None (Nonstandard Firefox-only property)">
use std::fmt;
use style_traits::ToCss;
use values::computed::ComputedValueAsSpecified;
pub mod computed_value {
#[derive(Clone, Copy, Debug, PartialEq)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(Clone, Copy, Debug, PartialEq, ToComputedValue)]
pub struct T(pub bool);
}
@ -76,8 +74,6 @@ ${helpers.single_keyword("-moz-window-shadow", "none default menu tooltip sheet"
computed_value::T(false)
}
impl ComputedValueAsSpecified for SpecifiedValue {}
pub fn parse<'i, 't>(_context: &ParserContext, input: &mut Parser<'i, 't>)
-> Result<SpecifiedValue, ParseError<'i>> {
match input.expect_integer()? {

Просмотреть файл

@ -4,7 +4,7 @@
//! Computed values.
use Atom;
use {Atom, Namespace};
use context::QuirksMode;
use euclid::Size2D;
use font_metrics::FontMetricsProvider;
@ -19,6 +19,7 @@ use std::fmt;
#[cfg(feature = "servo")]
use std::sync::Arc;
use style_traits::ToCss;
use style_traits::cursor::Cursor;
use super::{CSSFloat, CSSInteger};
use super::generics::{GreaterThanOrEqualToOne, NonNegative};
use super::generics::grid::{GridLine as GenericGridLine, TrackBreadth as GenericTrackBreadth};
@ -332,13 +333,17 @@ impl<T> ToComputedValue for T
}
}
trivial_to_computed_value!(Atom);
trivial_to_computed_value!(());
trivial_to_computed_value!(bool);
trivial_to_computed_value!(f32);
trivial_to_computed_value!(i32);
trivial_to_computed_value!(u8);
trivial_to_computed_value!(u16);
trivial_to_computed_value!(bool);
trivial_to_computed_value!(i32);
trivial_to_computed_value!(f32);
trivial_to_computed_value!(Atom);
trivial_to_computed_value!(BorderStyle);
trivial_to_computed_value!(Cursor);
trivial_to_computed_value!(Namespace);
trivial_to_computed_value!(String);
/// A `<number>` value.
pub type Number = CSSFloat;

Просмотреть файл

@ -71,7 +71,7 @@ impl SymbolsType {
///
/// Since wherever <counter-style> is used, 'none' is a valid value as
/// well, we combine them into one type to make code simpler.
#[derive(Clone, Debug, Eq, PartialEq, ToCss)]
#[derive(Clone, Debug, Eq, PartialEq, ToComputedValue, ToCss)]
pub enum CounterStyleOrNone {
/// `none`
None,

Просмотреть файл

@ -21,7 +21,6 @@ use super::computed::{Context, ToComputedValue};
use super::generics::{GreaterThanOrEqualToOne, NonNegative};
use super::generics::grid::{GridLine as GenericGridLine, TrackBreadth as GenericTrackBreadth};
use super::generics::grid::{TrackSize as GenericTrackSize, TrackList as GenericTrackList};
use values::computed::ComputedValueAsSpecified;
use values::specified::calc::CalcNode;
pub use properties::animated_properties::TransitionProperty;
@ -84,8 +83,6 @@ pub mod url {
use cssparser::Parser;
use parser::{Parse, ParserContext};
use style_traits::ParseError;
#[cfg(feature = "gecko")]
use values::computed::ComputedValueAsSpecified;
#[cfg(feature = "servo")]
pub use ::servo::url::*;
@ -100,10 +97,6 @@ impl Parse for SpecifiedUrl {
}
impl Eq for SpecifiedUrl {}
#[cfg(feature = "gecko")]
impl ComputedValueAsSpecified for SpecifiedUrl {}
}
/// Parse an `<integer>` value, handling `calc()` correctly.
@ -681,8 +674,8 @@ pub type NamespaceId = ();
/// An attr(...) rule
///
/// `[namespace? `|`]? ident`
#[derive(Clone, Debug, Eq, PartialEq)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
#[derive(Clone, Debug, Eq, PartialEq, ToComputedValue)]
pub struct Attr {
/// Optional namespace
pub namespace: Option<(Namespace, NamespaceId)>,
@ -777,5 +770,3 @@ impl ToCss for Attr {
dest.write_str(")")
}
}
impl ComputedValueAsSpecified for Attr {}