diff --git a/url/src/parser.rs b/url/src/parser.rs index dbdf9b906..8f2499a23 100644 --- a/url/src/parser.rs +++ b/url/src/parser.rs @@ -774,6 +774,9 @@ impl Parser<'_> { debug_assert!(base_url.byte_at(scheme_end) == b':'); self.serialization .push_str(base_url.slice(..scheme_end + 1)); + if scheme_type.is_special() { + return self.after_double_slash(remaining, scheme_type, scheme_end); + } if let Some(after_prefix) = input.split_prefix("//") { return self.after_double_slash(after_prefix, scheme_type, scheme_end); } diff --git a/url/tests/expected_failures.txt b/url/tests/expected_failures.txt index 8d4407c45..860fcd516 100644 --- a/url/tests/expected_failures.txt +++ b/url/tests/expected_failures.txt @@ -53,13 +53,6 @@ @[\\]^_`{|}~> @[\\]^_`{|}~> - against - against - against - against - against - against - against against set pathname to <\u{0}\u{1}\t\n\r\u{1f} !\"#$%&\'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~\u{7f}\u{80}\u{81}\u{c9}\u{e9}> set hash to <>