Auto merge of #112609 - matthiaskrgr:rollup-er6weld, r=matthiaskrgr
Rollup of 5 pull requests Successful merges: - #112197 (Erase regions even if normalization fails in writeback (in new solver)) - #112495 (fix(resolve): update shadowed_glob more precision) - #112520 (Fix the overflow issue for transmute_generic_consts) - #112571 (rustdoc-search: search never type with `!`) - #112581 ([rustdoc] Fix URL encoding of % sign) r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
57c215b08e
21 changed files with 331 additions and 39 deletions
|
|
@ -1940,8 +1940,6 @@ pub(crate) fn small_url_encode(s: String) -> String {
|
|||
// While the same is not true for hashes, rustdoc only needs to be
|
||||
// consistent with itself when encoding them.
|
||||
st += "+";
|
||||
} else if b == b'%' {
|
||||
st += "%%";
|
||||
} else {
|
||||
write!(st, "%{:02X}", b).unwrap();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -386,6 +386,35 @@ function initSearch(rawSearchIndex) {
|
|||
if (query.literalSearch && parserState.totalElems - parserState.genericsElems > 0) {
|
||||
throw ["You cannot have more than one element if you use quotes"];
|
||||
}
|
||||
const typeFilter = parserState.typeFilter;
|
||||
parserState.typeFilter = null;
|
||||
if (name === "!") {
|
||||
if (typeFilter !== null && typeFilter !== "primitive") {
|
||||
throw [
|
||||
"Invalid search type: primitive never type ",
|
||||
"!",
|
||||
" and ",
|
||||
typeFilter,
|
||||
" both specified",
|
||||
];
|
||||
}
|
||||
if (generics.length !== 0) {
|
||||
throw [
|
||||
"Never type ",
|
||||
"!",
|
||||
" does not accept generic parameters",
|
||||
];
|
||||
}
|
||||
return {
|
||||
name: "never",
|
||||
id: -1,
|
||||
fullPath: ["never"],
|
||||
pathWithoutLast: [],
|
||||
pathLast: "never",
|
||||
generics: [],
|
||||
typeFilter: "primitive",
|
||||
};
|
||||
}
|
||||
const pathSegments = name.split("::");
|
||||
if (pathSegments.length > 1) {
|
||||
for (let i = 0, len = pathSegments.length; i < len; ++i) {
|
||||
|
|
@ -399,6 +428,13 @@ function initSearch(rawSearchIndex) {
|
|||
}
|
||||
throw ["Unexpected ", "::::"];
|
||||
}
|
||||
|
||||
if (pathSegment === "!") {
|
||||
pathSegments[i] = "never";
|
||||
if (i !== 0) {
|
||||
throw ["Never type ", "!", " is not associated item"];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// In case we only have something like `<p>`, there is no name.
|
||||
|
|
@ -409,8 +445,6 @@ function initSearch(rawSearchIndex) {
|
|||
if (isInGenerics) {
|
||||
parserState.genericsElems += 1;
|
||||
}
|
||||
const typeFilter = parserState.typeFilter;
|
||||
parserState.typeFilter = null;
|
||||
return {
|
||||
name: name,
|
||||
id: -1,
|
||||
|
|
@ -459,10 +493,11 @@ function initSearch(rawSearchIndex) {
|
|||
break;
|
||||
}
|
||||
if (foundExclamation !== -1) {
|
||||
if (start <= (end - 2)) {
|
||||
if (foundExclamation !== start &&
|
||||
isIdentCharacter(parserState.userQuery[foundExclamation - 1])
|
||||
) {
|
||||
throw ["Cannot have associated items in macros"];
|
||||
} else {
|
||||
// if start == end - 1, we got the never type
|
||||
// while the never type has no associated macros, we still
|
||||
// can parse a path like that
|
||||
foundExclamation = -1;
|
||||
|
|
@ -478,7 +513,10 @@ function initSearch(rawSearchIndex) {
|
|||
end = parserState.pos;
|
||||
}
|
||||
// if start == end - 1, we got the never type
|
||||
if (foundExclamation !== -1 && start <= (end - 2)) {
|
||||
if (foundExclamation !== -1 &&
|
||||
foundExclamation !== start &&
|
||||
isIdentCharacter(parserState.userQuery[foundExclamation - 1])
|
||||
) {
|
||||
if (parserState.typeFilter === null) {
|
||||
parserState.typeFilter = "macro";
|
||||
} else if (parserState.typeFilter !== "macro") {
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ use std::path::{Path, PathBuf};
|
|||
|
||||
const ENTRY_LIMIT: usize = 900;
|
||||
// FIXME: The following limits should be reduced eventually.
|
||||
const ISSUES_ENTRY_LIMIT: usize = 1898;
|
||||
const ISSUES_ENTRY_LIMIT: usize = 1896;
|
||||
const ROOT_ENTRY_LIMIT: usize = 870;
|
||||
|
||||
const EXPECTED_TEST_FILE_EXTENSIONS: &[&str] = &[
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue