mirror of https://github.com/rust-lang/rust.git
rustdoc-search: allow `:: ` and ` ::`
This restriction made sense back when spaces separated function parameters, but now that they separate path components, there's no real ambiguity any more. Additionally, the Rust language allows it.
This commit is contained in:
parent
abe34e9ab1
commit
c28de27a73
|
@ -512,18 +512,15 @@ function initSearch(rawSearchIndex) {
|
|||
bindingName,
|
||||
};
|
||||
}
|
||||
const quadcolon = /::\s*::/.exec(path);
|
||||
if (path.startsWith("::")) {
|
||||
throw ["Paths cannot start with ", "::"];
|
||||
} else if (path.endsWith("::")) {
|
||||
throw ["Paths cannot end with ", "::"];
|
||||
} else if (path.includes("::::")) {
|
||||
throw ["Unexpected ", "::::"];
|
||||
} else if (path.includes(" ::")) {
|
||||
throw ["Unexpected ", " ::"];
|
||||
} else if (path.includes(":: ")) {
|
||||
throw ["Unexpected ", ":: "];
|
||||
} else if (quadcolon !== null) {
|
||||
throw ["Unexpected ", quadcolon[0]];
|
||||
}
|
||||
const pathSegments = path.split(/::|\s+/);
|
||||
const pathSegments = path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/);
|
||||
// In case we only have something like `<p>`, there is no name.
|
||||
if (pathSegments.length === 0 || (pathSegments.length === 1 && pathSegments[0] === "")) {
|
||||
if (generics.length > 0 || prevIs(parserState, ">")) {
|
||||
|
|
|
@ -143,6 +143,15 @@ const PARSED = [
|
|||
userQuery: "a::::b",
|
||||
error: "Unexpected `::::`",
|
||||
},
|
||||
{
|
||||
query: "a:: ::b",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: "a:: ::b",
|
||||
returned: [],
|
||||
userQuery: "a:: ::b",
|
||||
error: "Unexpected `:: ::`",
|
||||
},
|
||||
{
|
||||
query: "a::b::",
|
||||
elems: [],
|
||||
|
@ -314,24 +323,6 @@ const PARSED = [
|
|||
userQuery: 'a<->',
|
||||
error: 'Unexpected `-` after `<`',
|
||||
},
|
||||
{
|
||||
query: "a:: a",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: 'a:: a',
|
||||
returned: [],
|
||||
userQuery: 'a:: a',
|
||||
error: 'Unexpected `:: `',
|
||||
},
|
||||
{
|
||||
query: "a ::a",
|
||||
elems: [],
|
||||
foundElems: 0,
|
||||
original: 'a ::a',
|
||||
returned: [],
|
||||
userQuery: 'a ::a',
|
||||
error: 'Unexpected ` ::`',
|
||||
},
|
||||
{
|
||||
query: "a<a>:",
|
||||
elems: [],
|
||||
|
|
|
@ -15,6 +15,54 @@ const PARSED = [
|
|||
userQuery: "a::b",
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: "a:: a",
|
||||
elems: [{
|
||||
name: "a:: a",
|
||||
fullPath: ["a", "a"],
|
||||
pathWithoutLast: ["a"],
|
||||
pathLast: "a",
|
||||
generics: [],
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: 'a:: a',
|
||||
returned: [],
|
||||
userQuery: 'a:: a',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: "a ::a",
|
||||
elems: [{
|
||||
name: "a ::a",
|
||||
fullPath: ["a", "a"],
|
||||
pathWithoutLast: ["a"],
|
||||
pathLast: "a",
|
||||
generics: [],
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: 'a ::a',
|
||||
returned: [],
|
||||
userQuery: 'a ::a',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: "a :: a",
|
||||
elems: [{
|
||||
name: "a :: a",
|
||||
fullPath: ["a", "a"],
|
||||
pathWithoutLast: ["a"],
|
||||
pathLast: "a",
|
||||
generics: [],
|
||||
typeFilter: -1,
|
||||
}],
|
||||
foundElems: 1,
|
||||
original: 'a :: a',
|
||||
returned: [],
|
||||
userQuery: 'a :: a',
|
||||
error: null,
|
||||
},
|
||||
{
|
||||
query: 'A::B,C',
|
||||
elems: [
|
||||
|
|
Loading…
Reference in New Issue