3b13b9c2b4
Reject specialized Drop impls. See Issue #8142 for discussion. This makes it illegal for a Drop impl to be more specialized than the original item. So for example, all of the following are now rejected (when they would have been blindly accepted before): ```rust struct S<A> { ... }; impl Drop for S<i8> { ... } // error: specialized to concrete type struct T<'a> { ... }; impl Drop for T<'static> { ... } // error: specialized to concrete region struct U<A> { ... }; impl<A:Clone> Drop for U<A> { ... } // error: added extra type requirement struct V<'a,'b>; impl<'a,'b:a> Drop for V<'a,'b> { ... } // error: added extra region requirement ``` Due to examples like the above, this is a [breaking-change]. (The fix is to either remove the specialization from the `Drop` impl, or to transcribe the requirements into the struct/enum definition; examples of both are shown in the PR's fixed to `libstd`.) ---- This is likely to be the last thing blocking the removal of the `#[unsafe_destructor]` attribute. Fix #8142 Fix #23584 |
||
---|---|---|
.. | ||
style | ||
trpl | ||
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 | ||
rustdoc.md | ||
tutorial.md | ||
uptack.tex | ||
version_info.html.template |
Rust documentations
Dependencies
Pandoc, a universal document converter, is required to generate docs as HTML from Rust's source code.
Building
To generate all the docs, just run make docs
from the root of the repository.
This will convert the distributed Markdown docs to HTML and generate HTML doc
for the '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:
pandoc --from=markdown --to=html5 --number-sections -o reference.html reference.md
(reference.md
being the Rust Reference Manual.)
The syntax for pandoc flavored markdown can be found at:
A nice quick reference (for non-pandoc markdown) is at: