8484831d29
This PR implements [RFC 1192](https://github.com/rust-lang/rfcs/blob/master/text/1192-inclusive-ranges.md), which is triple-dot syntax for inclusive range expressions. The new stuff is behind two feature gates (one for the syntax and one for the std::ops types). This replaces the deprecated functionality in std::iter. Along the way I simplified the desugaring for all ranges. This is my first contribution to rust which changes more than one character outside of a test or comment, so please review carefully! Some of the individual commit messages have more of my notes. Also thanks for putting up with my dumb questions in #rust-internals. - For implementing `std::ops::RangeInclusive`, I took @Stebalien's suggestion from https://github.com/rust-lang/rfcs/pull/1192#issuecomment-137864421. It seemed to me to make the implementation easier and increase type safety. If that stands, the RFC should be amended to avoid confusion. - I also kind of like @glaebhoerl's [idea](https://github.com/rust-lang/rfcs/pull/1254#issuecomment-147815299), which is unified inclusive/exclusive range syntax something like `x>..=y`. We can experiment with this while everything is behind a feature gate. - There are a couple of FIXMEs left (see the last commit). I didn't know what to do about `RangeArgument` and I haven't added `Index` impls yet. Those should be discussed/finished before merging. cc @Gankro since you [complained](https://www.reddit.com/r/rust/comments/3xkfro/what_happened_to_inclusive_ranges/cy5j0yq) cc #27777 #30877 rust-lang/rust#1192 rust-lang/rfcs#1254 relevant to #28237 (tracking issue) |
||
---|---|---|
.. | ||
book | ||
nomicon | ||
style | ||
complement-design-faq.md | ||
complement-lang-faq.md | ||
complement-project-faq.md | ||
favicon.inc | ||
footer.inc | ||
full-toc.inc | ||
grammar.md | ||
guide-crates.md | ||
guide-error-handling.md | ||
guide-ffi.md | ||
guide-macros.md | ||
guide-ownership.md | ||
guide-plugins.md | ||
guide-pointers.md | ||
guide-strings.md | ||
guide-tasks.md | ||
guide-testing.md | ||
guide-unsafe.md | ||
guide.md | ||
index.md | ||
intro.md | ||
not_found.md | ||
README.md | ||
reference.md | ||
rust.css | ||
rust.md | ||
rustc-ux-guidelines.md | ||
rustdoc.md | ||
tutorial.md | ||
version_info.html.template |
Rust documentations
Building
To generate all the docs, follow the "Building Documentation" instructions in the README in the root of the repository. This will convert the distributed Markdown docs to HTML and generate HTML doc for the books, 'std' and 'extra' libraries.
To generate HTML documentation from one source file/crate, do something like:
rustdoc --output html-doc/ --output-format html ../src/libstd/path.rs
(This, of course, requires a working build of the rustdoc
tool.)
Additional notes
To generate an HTML version of a doc from Markdown manually, you can do something like:
rustdoc reference.md
(reference.md
being the Rust Reference Manual.)
An overview of how to use the rustdoc
command is available in the docs.
Further details are available from the command line by with rustdoc --help
.