diff --git a/src/librustdoc/html/static/js/main.js b/src/librustdoc/html/static/js/main.js
index 4150c5609a97..d6f4c2e0fa84 100644
--- a/src/librustdoc/html/static/js/main.js
+++ b/src/librustdoc/html/static/js/main.js
@@ -1101,7 +1101,6 @@ function preLoadCss(cssUrl) {
});
}());
- // @ts-expect-error
window.rustdoc_add_line_numbers_to_examples = () => {
// @ts-expect-error
function generateLine(nb) {
@@ -1123,7 +1122,6 @@ function preLoadCss(cssUrl) {
});
};
- // @ts-expect-error
window.rustdoc_remove_line_numbers_from_examples = () => {
onEachLazy(
document.querySelectorAll(".rustdoc:not(.src) :not(.scraped-example) > .example-wrap"),
@@ -1132,7 +1130,6 @@ function preLoadCss(cssUrl) {
};
if (getSettingValue("line-numbers") === "true") {
- // @ts-expect-error
window.rustdoc_add_line_numbers_to_examples();
}
diff --git a/src/librustdoc/html/static/js/rustdoc.d.ts b/src/librustdoc/html/static/js/rustdoc.d.ts
index 91a58fab86ef..0465866e3671 100644
--- a/src/librustdoc/html/static/js/rustdoc.d.ts
+++ b/src/librustdoc/html/static/js/rustdoc.d.ts
@@ -78,6 +78,8 @@ declare global {
pending_implementors?: rustdoc.Implementors,
register_type_impls?: function(rustdoc.TypeImpls): void,
pending_type_impls?: rustdoc.TypeImpls,
+ rustdoc_add_line_numbers_to_examples?: function(),
+ rustdoc_remove_line_numbers_from_examples?: function(),
}
interface HTMLElement {
/** Used by the popover tooltip code. */
diff --git a/src/librustdoc/html/static/js/settings.js b/src/librustdoc/html/static/js/settings.js
index 5f1bbd27328c..ff21c828611a 100644
--- a/src/librustdoc/html/static/js/settings.js
+++ b/src/librustdoc/html/static/js/settings.js
@@ -4,19 +4,26 @@
/* global MAIN_ID, getVar, getSettingsButton, getHelpButton */
// Eventually fix this.
-// @ts-nocheck
"use strict";
(function() {
const isSettingsPage = window.location.pathname.endsWith("/settings.html");
+ /**
+ * @overload {"theme"|"preferred-dark-theme"|"preferred-light-theme"}
+ * @param {string} settingName
+ * @param {string} value
+ * @returns
+ * @param {string} settingName
+ * @param {string|boolean} value
+ */
function changeSetting(settingName, value) {
if (settingName === "theme") {
const useSystem = value === "system preference" ? "true" : "false";
updateLocalStorage("use-system-theme", useSystem);
}
- updateLocalStorage(settingName, value);
+ updateLocalStorage(settingName, "" + value);
switch (settingName) {
case "theme":
@@ -27,9 +34,15 @@
break;
case "line-numbers":
if (value === true) {
- window.rustdoc_add_line_numbers_to_examples();
+ const f = window.rustdoc_add_line_numbers_to_examples;
+ if (f !== undefined) {
+ f();
+ }
} else {
- window.rustdoc_remove_line_numbers_from_examples();
+ const f = window.rustdoc_remove_line_numbers_from_examples;
+ if (f !== undefined) {
+ f();
+ }
}
break;
case "hide-sidebar":