From a2182f8dc31bdbb125477440289490e384f035ba Mon Sep 17 00:00:00 2001 From: Xidorn Quan Date: Fri, 20 Oct 2017 14:08:31 +1100 Subject: [PATCH] Store args of tree pseudo-elements as Atom. --- .../generated/pseudo_element_definition.rs | 30 +++++++++---------- .../gecko/pseudo_element_definition.mako.rs | 8 ++--- components/style/gecko/selector_parser.rs | 2 +- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/components/style/gecko/generated/pseudo_element_definition.rs b/components/style/gecko/generated/pseudo_element_definition.rs index 3717059ad19..83bc1f575c6 100644 --- a/components/style/gecko/generated/pseudo_element_definition.rs +++ b/components/style/gecko/generated/pseudo_element_definition.rs @@ -140,29 +140,29 @@ pub enum PseudoElement { /// :-moz-ruby-text-container RubyTextContainer, /// :-moz-tree-column - MozTreeColumn(Box<[String]>), + MozTreeColumn(Box<[Atom]>), /// :-moz-tree-row - MozTreeRow(Box<[String]>), + MozTreeRow(Box<[Atom]>), /// :-moz-tree-separator - MozTreeSeparator(Box<[String]>), + MozTreeSeparator(Box<[Atom]>), /// :-moz-tree-cell - MozTreeCell(Box<[String]>), + MozTreeCell(Box<[Atom]>), /// :-moz-tree-indentation - MozTreeIndentation(Box<[String]>), + MozTreeIndentation(Box<[Atom]>), /// :-moz-tree-line - MozTreeLine(Box<[String]>), + MozTreeLine(Box<[Atom]>), /// :-moz-tree-twisty - MozTreeTwisty(Box<[String]>), + MozTreeTwisty(Box<[Atom]>), /// :-moz-tree-image - MozTreeImage(Box<[String]>), + MozTreeImage(Box<[Atom]>), /// :-moz-tree-cell-text - MozTreeCellText(Box<[String]>), + MozTreeCellText(Box<[Atom]>), /// :-moz-tree-checkbox - MozTreeCheckbox(Box<[String]>), + MozTreeCheckbox(Box<[Atom]>), /// :-moz-tree-progressmeter - MozTreeProgressmeter(Box<[String]>), + MozTreeProgressmeter(Box<[Atom]>), /// :-moz-tree-drop-feedback - MozTreeDropFeedback(Box<[String]>), + MozTreeDropFeedback(Box<[Atom]>), /// :-moz-svg-marker-anon-child MozSVGMarkerAnonChild, /// :-moz-svg-outer-svg-anon-child @@ -1636,7 +1636,7 @@ None /// /// Returns `None` if the pseudo-element is not recognized. #[inline] - pub fn tree_pseudo_element(name: &str, args: Box<[String]>) -> Option { + pub fn tree_pseudo_element(name: &str, args: Box<[Atom]>) -> Option { use std::ascii::AsciiExt; debug_assert!(name.starts_with("-moz-tree-")); let tree_part = &name[10..]; @@ -1784,10 +1784,10 @@ impl ToCss for PseudoElement { dest.write_char('(')?; let mut iter = args.iter(); if let Some(first) = iter.next() { - serialize_identifier(first, dest)?; + serialize_identifier(&first.to_string(), dest)?; for item in iter { dest.write_str(", ")?; - serialize_identifier(item, dest)?; + serialize_identifier(&item.to_string(), dest)?; } } dest.write_char(')') diff --git a/components/style/gecko/pseudo_element_definition.mako.rs b/components/style/gecko/pseudo_element_definition.mako.rs index eaa178ad06b..b7e5a7614aa 100644 --- a/components/style/gecko/pseudo_element_definition.mako.rs +++ b/components/style/gecko/pseudo_element_definition.mako.rs @@ -8,7 +8,7 @@ pub enum PseudoElement { % for pseudo in PSEUDOS: /// ${pseudo.value} % if pseudo.is_tree_pseudo_element(): - ${pseudo.capitalized()}(Box<[String]>), + ${pseudo.capitalized()}(Box<[Atom]>), % else: ${pseudo.capitalized()}, % endif @@ -207,7 +207,7 @@ impl PseudoElement { /// /// Returns `None` if the pseudo-element is not recognized. #[inline] - pub fn tree_pseudo_element(name: &str, args: Box<[String]>) -> Option { + pub fn tree_pseudo_element(name: &str, args: Box<[Atom]>) -> Option { use std::ascii::AsciiExt; debug_assert!(name.starts_with("-moz-tree-")); let tree_part = &name[10..]; @@ -234,10 +234,10 @@ impl ToCss for PseudoElement { dest.write_char('(')?; let mut iter = args.iter(); if let Some(first) = iter.next() { - serialize_identifier(first, dest)?; + serialize_identifier(&first.to_string(), dest)?; for item in iter { dest.write_str(", ")?; - serialize_identifier(item, dest)?; + serialize_identifier(&item.to_string(), dest)?; } } dest.write_char(')') diff --git a/components/style/gecko/selector_parser.rs b/components/style/gecko/selector_parser.rs index cbc2806ef83..b6d48414fd5 100644 --- a/components/style/gecko/selector_parser.rs +++ b/components/style/gecko/selector_parser.rs @@ -392,7 +392,7 @@ impl<'a, 'i> ::selectors::Parser<'i> for SelectorParser<'a> { loop { let location = parser.current_source_location(); match parser.next() { - Ok(&Token::Ident(ref ident)) => args.push(ident.as_ref().to_owned()), + Ok(&Token::Ident(ref ident)) => args.push(Atom::from(ident.as_ref())), Ok(&Token::Comma) => {}, Ok(t) => return Err(location.new_unexpected_token_error(t.clone())), Err(BasicParseError { kind: BasicParseErrorKind::EndOfInput, .. }) => break,