Commit Graph

115 Commits

Author SHA1 Message Date
bors
cf3970aac5 Auto merge of #33151 - ollie27:rustdoc_abi, r=alexcrichton
rustdoc: Cleanup ABI rendering

Use a common method for rendering `extern "<abi>"`.

This now consistently shows `extern fn` rather than `extern "C" fn`.
2016-04-27 23:16:41 -07:00
bors
cda7c1cf24 Auto merge of #33199 - mitaa:tokenize-responsibly, r=nrc
Make some fatal lexer errors recoverable

I've kept the changes to a minimum since I'm not really sure if this approach is a acceptable.

fixes #12834

cc @nrc
2016-04-27 13:49:45 -07:00
mitaa
6887202ea3 Make some fatal lexer errors recoverable 2016-04-27 20:48:18 +02:00
Oliver Middleton
48aabbd9e3 rustdoc: Render extern fn instead of extern "C" fn 2016-04-27 18:43:51 +01:00
Manish Goregaokar
edbb0d5a90 Rollup merge of #33196 - mitaa:rdoc-crate-links, r=alexcrichton
rustdoc: Linkify extern crates

fixes #33178

r? @alexcrichton
2016-04-26 01:44:52 +05:30
Manish Goregaokar
b588f6903d Rollup merge of #33160 - euclio:rustdoc-unstable-deprecated, r=alexcrichton
show unstable status for deprecated items

Fixes #32374.
2016-04-26 01:44:51 +05:30
Manish Goregaokar
5fba2bfa0a Rollup merge of #33133 - mitaa:rdoc-smth-smth-impl, r=alexcrichton
rustdoc: inline all the impls

This used to be done to avoid inlining impls referencing private items, but is now unnecessary since we actually check that impls do not reference non-doc-reachable items.

fixes #32881
fixes #33025
fixes #33113

r? @alexcrichton
2016-04-26 01:44:51 +05:30
mitaa
0b5b782e39 Linkify extern crates on rustdoc pages 2016-04-25 11:26:33 +02:00
mitaa
6603c95414 Check reachability for inlined extern links too
An item is inlined and recorded as inlined even if it is
`doc(hidden)`, leading to unchecked external links.
2016-04-24 20:32:21 +02:00
mitaa
dca7f0162c Remove, now unnecessary, workaround
This used to be done to avoid inlining impls referencing private items,
but is now unnecessary since we actually check that impls do not
reference non-doc-reachable items.
2016-04-24 08:17:14 +02:00
Andy Russell
c7c34fdace
show unstable status for deprecated items 2016-04-22 23:35:48 -04:00
mitaa
8ab2c20d8c Only record the same impl once
Due to inlining it is possible to visit the same module multiple times
during `<Cache as DocFolder>::fold_crate`, so we keep track of the
modules we've already visited.
2016-04-22 19:10:30 +02:00
Oliver Middleton
2b1e35ec12 rustdoc: Cleanup ABI rendering
Use a common method for rendering `extern "<abi>"`.

This now consistently shows `extern "C" fn` rather than just `extern fn`.
2016-04-22 11:51:25 +01:00
bors
b5ba5923f8 Auto merge of #33074 - mitaa:rdoc-irlst, r=alexcrichton
rustdoc: Fix the strip-hidden `ImplStripper`

Instead of stripping impls which reference *stripped* items, we keep impls which reference *retained* items. We do this because when we strip an item we immediately return, and do not recurse into it - leaving the contained items non-stripped from the point of view of the `ImplStripper`.

fixes #33069

r? @alexcrichton
2016-04-21 10:52:15 -07:00
bors
478a33dabc Auto merge of #33002 - mitaa:rdoc-cross-impls, r=alexcrichton
rustdoc: refine cross-crate impl inlining

This changes the current rule that impls within `doc(hidden)` modules aren't inlined, to only inlining impls where the implemented trait and type are reachable in documentation.

fixes #14586
fixes #31948

.. and also applies the reachability checking to cross-crate links.

fixes #28480

r? @alexcrichton
2016-04-19 05:00:10 -07:00
bors
e8c0aeb88b Auto merge of #32985 - caipre:rustdoc-disambiguate-impl-anchors, r=alexcrichton
rustdoc: Disambiguate anchors

Closes https://github.com/rust-lang/rust/issues/32890
2016-04-19 01:49:13 -07:00
Steve Klabnik
5d0dca363f Rollup merge of #32558 - sanxiyn:rustdoc-self-link, r=steveklabnik
Avoid linking to itself in implementors section of trait page

Fix #32474.
2016-04-18 14:50:34 -04:00
mitaa
574450a413 Fix the strip-hidden ImplStripper
Instead of stripping impls which reference *stripped* items, we keep impls
which reference *retained* items. We do this because when we strip an
item we immediately return, and do not recurse into it - leaving the
contained items non-stripped from the point of view of the `ImplStripper`.
2016-04-18 17:32:00 +02:00
Nick Platt
894caf8364 rustdoc: Disambiguate anchors for assoc item impls 2016-04-17 21:41:55 -04:00
mitaa
77b409a674 Reachability check cross-crate links 2016-04-18 01:56:01 +02:00
mitaa
cfad7ad947 Perform doc-reachability check for inlined impls
This changes the current rule that impls within `doc(hidden)` modules
aren't inlined, to only inlining impls where the implemented
trait and type are reachable in documentation.
2016-04-18 01:55:54 +02:00
pierzchalski
ec5e0f81cf Add flag for whether an item is default or not.
We don't want to render default item docs but previously
`doctraititem` naively delegated to the trait definition in those
cases.

Updated tests to also check that this doesn't strip default item
docs from the trait definition.
2016-04-15 14:41:54 +10:00
pierzchalski
d95ca2822c Add tests against weird provided/required method behaviour
In `test/rustdoc/manual_impl.rs` there are now three structs:

* S1 implements and documents required method `a_method`.
* S2 implements and documents `a_method` as well as provided
  method `b_method`.
* S3 implements `a_method` and `b_method`, but only documents
  `b_method`.

For a struct, we want the rendered trait impls to include documentation
if and only if it appears on the trait implementation itself
(since users can just go to the trait definition for anything not
covered in the impl docs). This means we expect:

* S1, S2, and S3 to all include top-level trait impl docs.
* S1, S2, and S3 to exclude all trait definition docs.
* S1 to show impl docs for `a_method`.
* S2 to show impl docs for `a_method` and `b_method`.
* S3 to show impl docs for `b_method`.

These tests cover those cases.
2016-04-15 13:13:55 +10:00
pierzchalski
d8d8669439 Delegate whether to print docblocks to 'document'
Add test to check this resolves #24838 and #26871.
2016-04-14 13:57:01 +10:00
Alex Crichton
42bcb4047d rustdoc: Fix testing no_run code blocks
This was a regression introduced by #31250 where the compiler deferred returning
the results of compilation a little too late (after the `Stop` check was looked
at). This commit alters the stop point to first try to return an erroneous
`result` and only if it was successful return the sentinel `Err(0)`.

Closes #31576
2016-04-11 09:26:59 -07:00
Seo Sanghyeon
87030f603b Add a test 2016-04-06 01:24:49 +09:00
mitaa
0ef85c1e6a Refactor HiddenStructField into StrippedItem 2016-04-02 13:47:05 +02:00
mitaa
b1543a1aac Make the rendering process less pass-aware
Instead of hardcoding knowledge about the strip-private pass into the
rendering process we represent (some) stripped items as `ItemEnum::StrippedItem`.

Rustdoc will, for example, generate redirect pages for public items
contained in private modules which have been re-exported to somewhere
externally reachable - this will now not only work for the `strip-private`
pass, but for other passes as well, such as the `strip-hidden` pass.
2016-04-02 12:00:55 +02:00
mitaa
d0f74b6059 Load struct-variant data correctly from metadata 2016-03-27 00:21:00 +01:00
mitaa
0e3a2c0167 Linkify associated types and constants 2016-03-27 00:21:00 +01:00
mitaa
3e33ef4c42 Correct anchor for links to associated trait items 2016-03-27 00:20:55 +01:00
Eduard-Mihai Burtescu
2acad9c17e Rollup merge of #32434 - mitaa:rdoc-no-inline, r=alexcrichton
rustdoc: Consider `doc(no_inline)` in crate-local inlining

Imports with `doc(no_inline)` will not be inlined, even when `doc(inline)` is present.

fixes #32343

r? @alexcrichton
2016-03-23 17:59:16 +02:00
mitaa
4c71347e94 Consider doc(no_inline) in crate-local inlining 2016-03-22 21:11:00 +01:00
mitaa
00a32b2884 Omit pub for inlined variant-struct fields 2016-03-22 06:59:43 +01:00
bors
beb444eaed Auto merge of #32142 - mitaa:rdoc-maybe-inline-local, r=alexcrichton
rustdoc: improve crate-local inlining

fixes #28537

r? @alexcrichton
2016-03-12 07:31:11 -08:00
Aaron Turon
6265b6bec8 Adjust rustdoc test for new restriction 2016-03-11 15:22:07 -08:00
mitaa
7c983991d9 Remove feature(globs) since they are stable 2016-03-10 03:29:55 +01:00
mitaa
a20e6bb162 Consider doc(hidden) for crate-local inlining 2016-03-10 03:29:46 +01:00
mitaa
ae7fca1e1f Check for doc(inline) instead of .*(inline) 2016-03-09 02:05:39 +01:00
bors
72d588a620 Auto merge of #32055 - mitaa:rdoc-strip-priv-imports, r=alexcrichton
fixes #27104

r? @alexcrichton
2016-03-06 17:08:36 +00:00
mitaa
688e52201e Split out rustdoc pass to strip private imports 2016-03-06 08:18:58 +01:00
Brian Anderson
d3ae29d9c1 Ignore a rustdoc test that does not work on beta 2016-03-03 00:40:34 +00:00
mitaa
2352c1c539 Clearly separate code blocks from other blocks
For summary descriptions we need the first paragraph (adjacent lines
until a blank line) - but the rendered markdown of a code block did not
leave a blank line in the html and was thus included in the summary line.
2016-02-27 06:42:21 +01:00
bors
64b4b6d6c6 Auto merge of #31903 - mitaa:rdoc-ghostly-impls, r=alexcrichton
fixes #29584

r? @alexcrichton
2016-02-26 19:25:16 +00:00
mitaa
eae9f4636c Don't inline impls from doc(hidden) modules 2016-02-26 15:56:46 +01:00
bors
15e9a95a4b Auto merge of #31749 - nikomatsakis:compiletest-subdir, r=alexcrichton
You can now group tests into directories like `run-pass/borrowck` or `compile-fail/borrowck`. By default, all `.rs` files within any directory are considered tests: to ignore some directory, create a placeholder file called `compiletest-ignore-dir` (I had to do this for several existing directories).

r? @alexcrichton
cc @brson
2016-02-26 00:53:38 +00:00
Manish Goregaokar
e584a492f3 Rollup merge of #31837 - mitaa:rdoc-inherent-assoc, r=alexcrichton
This effectively only records associated items from either inherent impls or trait definitions in the search-index.

fixes #31808

r? @alexcrichton
2016-02-25 15:06:07 +05:30
Niko Matsakis
1c850d8448 Add compiletest-ignore-dir to existing subdirectories. 2016-02-24 18:40:39 -05:00
mitaa
cf76fcf30d Fix source-links for files with absolute-paths
`clean_srcpath` tries to make the source-path relative to `src_root`,
but this didn't work since `src_root` itself wasn't absolute.
2016-02-24 19:43:02 +01:00
mitaa
b38a856e38 Don't show associated consts from trait impls 2016-02-23 21:47:13 +01:00