diff options
| author | bors <bors@rust-lang.org> | 2018-06-16 06:38:16 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-06-16 06:38:16 +0000 |
| commit | 01fb32b25fb591b1e721d343841ce18984af6deb (patch) | |
| tree | 9a1fc98e312c50c05bcb534ff6635790d332d14b | |
| parent | 68cee8bb36d8cf0c5fe1e9b7ffa0bf096ac5bd68 (diff) | |
| parent | 1fcce48451b5d4484d29ddf0641d2228ba78fdbd (diff) | |
| download | rust-01fb32b25fb591b1e721d343841ce18984af6deb.tar.gz rust-01fb32b25fb591b1e721d343841ce18984af6deb.zip | |
Auto merge of #51581 - GuillaumeGomez:keyword-doc, r=QuietMisdreavus
Keyword doc Part of #51451. r? @QuietMisdreavus
| -rw-r--r-- | src/librustdoc/html/static/main.js | 6 | ||||
| -rw-r--r-- | src/libstd/keyword_docs.rs | 28 | ||||
| -rw-r--r-- | src/libstd/lib.rs | 5 | ||||
| -rw-r--r-- | src/test/rustdoc-js/keyword.js | 20 | ||||
| -rw-r--r-- | src/test/rustdoc-js/should-fail.js | 19 | ||||
| -rw-r--r-- | src/tools/rustdoc-js/tester.js | 8 |
6 files changed, 84 insertions, 2 deletions
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index ed6745cd7f5..bb996e00d35 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -465,6 +465,10 @@ var res = buildHrefAndPath(obj); obj.displayPath = pathSplitter(res[0]); obj.fullPath = obj.displayPath + obj.name; + if (obj.ty === TY_KEYWORD) { + // To be sure than it isn't considered as duplicate with items. + obj.fullPath += '|k'; + } obj.href = res[1]; out.push(obj); if (out.length >= MAX_RESULTS) { @@ -781,7 +785,7 @@ case "fn": return (name == "method" || name == "tymethod"); case "type": - return (name == "primitive"); + return (name == "primitive" || name == "keyword"); } // No match diff --git a/src/libstd/keyword_docs.rs b/src/libstd/keyword_docs.rs new file mode 100644 index 00000000000..01bd3edaee9 --- /dev/null +++ b/src/libstd/keyword_docs.rs @@ -0,0 +1,28 @@ +// Copyright 2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#[doc(keyword = "fn")] +// +/// The `fn` keyword. +/// +/// The `fn` keyword is used to declare a function. +/// +/// Example: +/// +/// ```rust +/// fn some_function() { +/// // code goes in here +/// } +/// ``` +/// +/// For more information about functions, take a look at the [Rust Book][book]. +/// +/// [book]: https://doc.rust-lang.org/book/second-edition/ch03-03-how-functions-work.html +mod fn_keyword { } diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index 1bdc1dc2b7c..a6061e96ae5 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -547,3 +547,8 @@ pub use stdsimd::arch; // the rustdoc documentation for primitive types. Using `include!` // because rustdoc only looks for these modules at the crate level. include!("primitive_docs.rs"); + +// Include a number of private modules that exist solely to provide +// the rustdoc documentation for the existing keywords. Using `include!` +// because rustdoc only looks for these modules at the crate level. +include!("keyword_docs.rs"); diff --git a/src/test/rustdoc-js/keyword.js b/src/test/rustdoc-js/keyword.js new file mode 100644 index 00000000000..65de3a4662f --- /dev/null +++ b/src/test/rustdoc-js/keyword.js @@ -0,0 +1,20 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// ignore-order + +const QUERY = 'fn'; + +const EXPECTED = { + 'others': [ + { 'path': 'std', 'name': 'fn', ty: 15 }, // 15 is for primitive types + { 'path': 'std', 'name': 'fn', ty: 21 }, // 21 is for keywords + ], +}; diff --git a/src/test/rustdoc-js/should-fail.js b/src/test/rustdoc-js/should-fail.js new file mode 100644 index 00000000000..5e41422612a --- /dev/null +++ b/src/test/rustdoc-js/should-fail.js @@ -0,0 +1,19 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// should-fail + +const QUERY = 'fn'; + +const EXPECTED = { + 'others': [ + { 'path': 'std', 'name': 'fn', ty: 14 }, + ], +}; diff --git a/src/tools/rustdoc-js/tester.js b/src/tools/rustdoc-js/tester.js index a05c8a8ac91..3c1fceaf8fa 100644 --- a/src/tools/rustdoc-js/tester.js +++ b/src/tools/rustdoc-js/tester.js @@ -164,6 +164,7 @@ function loadContent(content) { m._compile(content, "tmp.js"); m.exports.ignore_order = content.indexOf("\n// ignore-order\n") !== -1; m.exports.exact_check = content.indexOf("\n// exact-check\n") !== -1; + m.exports.should_fail = content.indexOf("\n// should-fail\n") !== -1; return m.exports; } @@ -259,6 +260,7 @@ function main(argv) { const query = loadedFile.QUERY; const ignore_order = loadedFile.ignore_order; const exact_check = loadedFile.exact_check; + const should_fail = loadedFile.should_fail; var results = loaded.execSearch(loaded.getQuery(query), index); process.stdout.write('Checking "' + file + '" ... '); var error_text = []; @@ -289,7 +291,11 @@ function main(argv) { } } } - if (error_text.length !== 0) { + if (error_text.length === 0 && should_fail === true) { + errors += 1; + console.error("FAILED"); + console.error("==> Test was supposed to fail but all items were found..."); + } else if (error_text.length !== 0 && should_fail === false) { errors += 1; console.error("FAILED"); console.error(error_text.join("\n")); |
