aboutsummaryrefslogtreecommitdiffstats
path: root/components/selectors/parser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/selectors/parser.rs')
-rw-r--r--components/selectors/parser.rs41
1 files changed, 22 insertions, 19 deletions
diff --git a/components/selectors/parser.rs b/components/selectors/parser.rs
index a10b95b04e2..3fa3f135f9e 100644
--- a/components/selectors/parser.rs
+++ b/components/selectors/parser.rs
@@ -3,8 +3,8 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use arcslice::ArcSlice;
-use attr::{AttrSelectorWithNamespace, AttrSelectorOperation, AttrSelectorOperator};
-use attr::{CaseSensitivity, SELECTOR_WHITESPACE, NamespaceConstraint};
+use attr::{AttrSelectorWithNamespace, ParsedAttrSelectorOperation, AttrSelectorOperator};
+use attr::{ParsedCaseSensitivity, SELECTOR_WHITESPACE, NamespaceConstraint};
use cssparser::{Token, Parser as CssParser, parse_nth, ToCss, serialize_identifier, CssStringWriter};
use precomputed_hash::PrecomputedHash;
use smallvec::SmallVec;
@@ -548,7 +548,7 @@ pub enum Component<Impl: SelectorImpl> {
local_name_lower: Impl::LocalName,
operator: AttrSelectorOperator,
value: Impl::AttrValue,
- case_sensitivity: CaseSensitivity,
+ case_sensitivity: ParsedCaseSensitivity,
never_matches: bool,
},
// Use a Box in the less common cases with more data to keep size_of::<Component>() small.
@@ -735,9 +735,9 @@ impl<Impl: SelectorImpl> ToCss for Component<Impl> {
write!(CssStringWriter::new(dest), "{}", value)?;
dest.write_char('"')?;
match case_sensitivity {
- CaseSensitivity::CaseSensitive |
- CaseSensitivity::AsciiCaseInsensitiveIfInHtmlElementInHtmlDocument => {},
- CaseSensitivity::AsciiCaseInsensitive => dest.write_str(" i")?,
+ ParsedCaseSensitivity::CaseSensitive |
+ ParsedCaseSensitivity::AsciiCaseInsensitiveIfInHtmlElementInHtmlDocument => {},
+ ParsedCaseSensitivity::AsciiCaseInsensitive => dest.write_str(" i")?,
}
dest.write_char(']')
}
@@ -784,16 +784,18 @@ impl<Impl: SelectorImpl> ToCss for AttrSelectorWithNamespace<Impl> {
}
display_to_css_identifier(&self.local_name, dest)?;
match self.operation {
- AttrSelectorOperation::Exists => {},
- AttrSelectorOperation::WithValue { operator, case_sensitivity, ref expected_value } => {
+ ParsedAttrSelectorOperation::Exists => {},
+ ParsedAttrSelectorOperation::WithValue {
+ operator, case_sensitivity, ref expected_value
+ } => {
operator.to_css(dest)?;
dest.write_char('"')?;
write!(CssStringWriter::new(dest), "{}", expected_value)?;
dest.write_char('"')?;
match case_sensitivity {
- CaseSensitivity::CaseSensitive |
- CaseSensitivity::AsciiCaseInsensitiveIfInHtmlElementInHtmlDocument => {},
- CaseSensitivity::AsciiCaseInsensitive => dest.write_str(" i")?,
+ ParsedCaseSensitivity::CaseSensitive |
+ ParsedCaseSensitivity::AsciiCaseInsensitiveIfInHtmlElementInHtmlDocument => {},
+ ParsedCaseSensitivity::AsciiCaseInsensitive => dest.write_str(" i")?,
}
},
}
@@ -1229,7 +1231,7 @@ fn parse_attribute_selector<P, Impl>(parser: &P, input: &mut CssParser)
namespace: namespace,
local_name: local_name,
local_name_lower: local_name_lower,
- operation: AttrSelectorOperation::Exists,
+ operation: ParsedAttrSelectorOperation::Exists,
never_matches: false,
})))
} else {
@@ -1285,12 +1287,13 @@ fn parse_attribute_selector<P, Impl>(parser: &P, input: &mut CssParser)
let local_name_lower;
{
let local_name_lower_cow = to_ascii_lowercase(&local_name);
- if let CaseSensitivity::CaseSensitive = case_sensitivity {
+ if let ParsedCaseSensitivity::CaseSensitive = case_sensitivity {
if namespace.is_none() &&
include!(concat!(env!("OUT_DIR"), "/ascii_case_insensitive_html_attributes.rs"))
.contains(&*local_name_lower_cow)
{
- case_sensitivity = CaseSensitivity::AsciiCaseInsensitiveIfInHtmlElementInHtmlDocument
+ case_sensitivity =
+ ParsedCaseSensitivity::AsciiCaseInsensitiveIfInHtmlElementInHtmlDocument
}
}
local_name_lower = from_cow_str(local_name_lower_cow);
@@ -1302,7 +1305,7 @@ fn parse_attribute_selector<P, Impl>(parser: &P, input: &mut CssParser)
local_name: local_name,
local_name_lower: local_name_lower,
never_matches: never_matches,
- operation: AttrSelectorOperation::WithValue {
+ operation: ParsedAttrSelectorOperation::WithValue {
operator: operator,
case_sensitivity: case_sensitivity,
expected_value: value,
@@ -1321,11 +1324,11 @@ fn parse_attribute_selector<P, Impl>(parser: &P, input: &mut CssParser)
}
-fn parse_attribute_flags(input: &mut CssParser) -> Result<CaseSensitivity, ()> {
+fn parse_attribute_flags(input: &mut CssParser) -> Result<ParsedCaseSensitivity, ()> {
match input.next() {
- Err(()) => Ok(CaseSensitivity::CaseSensitive),
+ Err(()) => Ok(ParsedCaseSensitivity::CaseSensitive),
Ok(Token::Ident(ref value)) if value.eq_ignore_ascii_case("i") => {
- Ok(CaseSensitivity::AsciiCaseInsensitive)
+ Ok(ParsedCaseSensitivity::AsciiCaseInsensitive)
}
_ => Err(())
}
@@ -1971,7 +1974,7 @@ pub mod tests {
operator: AttrSelectorOperator::DashMatch,
value: DummyAtom::from("foo"),
never_matches: false,
- case_sensitivity: CaseSensitivity::CaseSensitive,
+ case_sensitivity: ParsedCaseSensitivity::CaseSensitive,
}
]),
specificity_and_flags: specificity(0, 1, 0),