Commit graph

425 commits

Author SHA1 Message Date
bors
594b05dd97 Auto merge of #51425 - QuietMisdreavus:thats-def-a-namespace-there, r=petrochenkov
refactor: create multiple HIR items for imports

When lowering `use` statements into HIR, they get a `Def` of the thing they're pointing at. This is great for things that need to know what was just pulled into scope. However, this is a bit misleading, because a `use` statement can pull things from multiple namespaces if their names collide. This is a problem for rustdoc, because if there are a module and a function with the same name (for example) then it will only document the module import, because that's that the lowered `use` statement points to.

The current version of this PR does the following:

* Whenever the resolver comes across a `use` statement, it loads the definitions into a new `import_map` instead of the existing `def_map`. This keeps the resolutions per-namespace so that all the target definitions are available.
* When lowering `use` statements, it looks up the resolutions in the `import_map` and creates multiple `Item`s if there is more than one resolution.
* To ensure the `NodeId`s are properly tracked in the lowered module, they need to be created in the AST, and pulled out as needed if multiple resolutions are available.

Fixes https://github.com/rust-lang/rust/issues/34843
2018-06-17 09:48:10 +00:00
bors
0f8f4903f7 Auto merge of #51382 - GuillaumeGomez:intra-link-lint, r=QuietMisdreavus
Add lint for intra link resolution failure

This PR is almost done, just remains this note:

```
note: requested on the command line with `-W intra-link-resolution-failure`
```

I have no idea why my lint is considered as being passed through command line and wasn't able to find where it was set. If anyone has an idea, it'd be very helpful!

cc @QuietMisdreavus
2018-06-17 02:57:40 +00:00
QuietMisdreavus
042f1df198 process cross-crate glob re-exports 2018-06-15 18:18:14 -05:00
QuietMisdreavus
02121f36e8 add test for issue 34843 2018-06-14 17:47:35 -05:00
Guillaume Gomez
6d5e6b4928 Fix rustdoc test failure 2018-06-13 21:18:56 +02:00
Oliver Middleton
e73941a06b rustdoc: Fix missing stability and src links for inlined external macros 2018-06-06 04:13:55 +01:00
Mark Simulacrum
ac32f8151b
Rollup merge of #51256 - GuillaumeGomez:fix-rustdoc-crate-name, r=QuietMisdreavus
Fix crate-name option in rustdoc

Fixes #51229.

r? @QuietMisdreavus
2018-06-05 08:33:47 -06:00
Guillaume Gomez
3cbcc5a22d Fix crate-name option in rustdoc 2018-06-04 23:05:14 +02:00
Guillaume Gomez
402aa0ff15 Add even more tests 2018-06-04 09:52:31 +02:00
Guillaume Gomez
ded5c5a9ee Put doc keyword behind feature flag 2018-06-04 09:52:31 +02:00
Guillaume Gomez
ebee483e24 Add doc keyword support 2018-06-04 09:51:41 +02:00
bors
251ec62a13 Auto merge of #50953 - GuillaumeGomez:attributes-in-other-places, r=QuietMisdreavus
Add attributes for trait and methods as well

Fixes #48485.

r? @QuietMisdreavus
2018-06-03 00:31:13 +00:00
Guillaume Gomez
26ad95c9d4 Add attributes for trait and methods as well 2018-06-02 23:26:46 +02:00
Mark Simulacrum
cf24a1df33 Rustdoc itself no longer requires proc macros to build
This avoids a full compiler build in order to build and/or run tests for
rustdoc.
2018-06-02 09:32:22 -06:00
kennytm
98606cfe12
Rollup merge of #51011 - QuietMisdreavus:duplicitous-macros, r=ollie27
rustdoc: hide macro export statements from docs

As mentioned in https://github.com/rust-lang/rust/issues/50647, rustdoc now prints both the import statement and the macro itself when re-exporting macros. This is a stopgap solution to clean up the std docs and get something small backported into beta.

What this does: When rustdoc finds an export statement for a macro, instead of printing the export and bailing, now it will instead hide the export and bail. Until we can solve https://github.com/rust-lang/rust/issues/34843 or have a better way to find the attributes on an export statement when inlining macros, this will at least match the current behavior and clean up the re-export statements from the docs.
2018-05-24 17:34:55 +08:00
QuietMisdreavus
4cf0c5fa32 fix @!has conditions in pub-use-extern-macros test 2018-05-23 20:53:45 -05:00
QuietMisdreavus
d19b5edfb0 update "pub-use-extern-macros" test to hide the regular import statement 2018-05-23 16:39:47 -05:00
bors
ba64edb3ed Auto merge of #50533 - GuillaumeGomez:rustdoc-prim-auto, r=QuietMisdreavus
add auto-impl for primitive type

Part of #50431.

I have no clue how to test this though with the rustdoc test suite...

r? @QuietMisdreavus
2018-05-18 14:52:12 +00:00
Shotaro Yamada
7eefe2b473 Fix rustdoc panic with impl Trait in type parameters 2018-05-16 11:03:02 +09:00
Guillaume Gomez
564511e58b add auto-impl for primitive type 2018-05-15 21:37:12 +02:00
Oliver Middleton
3daded02fa rustdoc: Add support for pub(restricted) 2018-05-12 18:25:09 +01:00
bors
715d6a98aa Auto merge of #50305 - GuillaumeGomez:fix-mod-stackoverflow, r=QuietMisdreavus
Prevent infinite recursion of modules

Fixes #50196.

r? @QuietMisdreavus
2018-05-07 23:18:12 +00:00
Guillaume Gomez
3ba7c00f94 Prevent infinite recursion of modules 2018-05-07 12:44:03 +02:00
Shotaro Yamada
14f32f64c8 rustdoc: Resolve nested impl Traits 2018-05-03 22:34:10 +09:00
Vadim Petrochenkov
730c7222ee Fix an error from "unused" lint + Fix rebase 2018-05-01 17:02:18 +03:00
Vadim Petrochenkov
300b6bb417 Remove macro_reexport
It's subsumed by `feature(use_extern_macros)` and `pub use`
2018-05-01 15:58:42 +03:00
Oliver Middleton
7232df7d5a rustdoc: Fix links to constants in external crates 2018-04-29 23:28:39 +01:00
Simon Sapin
f0705bf033 Replace StrExt with inherent str methods in libcore 2018-04-21 09:47:37 +02:00
Guillaume Gomez
92d29c1267
Rollup merge of #50032 - ollie27:rustdoc_all_private, r=GuillaumeGomez
rustdoc: Don't include private paths in all.html

For example the `std` [`all.html`](https://doc.rust-lang.org/nightly/std/all.html) includes references to the `coresimd` module which is a private implementation detail.

r? @GuillaumeGomez
2018-04-17 18:43:17 +02:00
QuietMisdreavus
1a0d7a8207 add -C parameter to rustdoc 2018-04-13 16:07:12 -05:00
Oliver Middleton
abded6111b rustdoc: Don't include private paths in all.html 2018-04-13 14:58:43 +01:00
QuietMisdreavus
3366032ab7 add test for using target features in doctests 2018-04-12 15:51:11 -05:00
bors
a1c21ed7e2 Auto merge of #49504 - GuillaumeGomez:doc-all-types, r=QuietMisdreavus
Add page to list all crate's items

r? @QuietMisdreavus
2018-04-10 06:23:52 +00:00
bors
2253216ec5 Auto merge of #49335 - GuillaumeGomez:remove-unneeded-trait-implementations-title, r=QuietMisdreavus
Remove unneeded trait implementations titles

r? @QuietMisdreavus
2018-04-06 12:03:16 +00:00
kennytm
52fd162603
Rollup merge of #49603 - GuillaumeGomez:fix-intra-link-trait-provided-method, r=QuietMisdreavus
Fix url for intra link provided method

Fixes #49582.

r? @QuietMisdreavus
2018-04-04 11:07:22 +02:00
kennytm
f4f13883e5
Rollup merge of #49532 - Phlosioneer:32556-rustdoc-regression-test, r=GuillaumeGomez
Add test for rustdoc ignore test

This will check for regression on issue #32556
2018-04-04 11:07:14 +02:00
kennytm
609e9f014f
Rollup merge of #49512 - GuillaumeGomez:intra-links-fields, r=QuietMisdreavus
Add support for variant and types fields for intra links

Part of #43466.

r? @QuietMisdreavus
2018-04-04 11:07:11 +02:00
kennytm
b7b2ae2b6f
Rollup merge of #49179 - varkor:future-deprecation, r=QuietMisdreavus,GuillaumeGomez
Handle future deprecation annotations

This adds special handling to the `since` parameter of the `deprecated` attribute: in particular, if the `since` version exceeds the version of the compiler, the deprecation notice will not be printed; but a note is added to the documentation stating that the item will be deprecated in a later version.

(I've used `since` for this, rather than adding a new attribute, because it's more seamless and, I feel, intuitive. Plus it involves less code churn.)

![image](https://user-images.githubusercontent.com/3943692/37611317-ef5cdf16-2b99-11e8-8251-e35e8f7b0137.png)
![image](https://user-images.githubusercontent.com/3943692/37611323-f748c2d0-2b99-11e8-966b-11408c73d416.png)

This is a prerequisite for doing things renaming methods in the standard library (e.g. #30459). Resolves #30785.
2018-04-04 11:07:10 +02:00
Guillaume Gomez
43815a508c Add test for all.html 2018-04-04 00:56:08 +02:00
Guillaume Gomez
f9cc0307fe Fix url for intra link provided method 2018-04-02 18:52:04 +02:00
varkor
44ad8fd136 Shorten deprecation note 2018-03-31 21:44:12 +01:00
Phlosioneer
cb3097567f Add ignore reason 2018-03-31 16:23:50 -04:00
Phlosioneer
42bc0712f1 Remove whitespace 2018-03-31 16:08:58 -04:00
Phlosioneer
48e3c961eb Fix tidy trailing newlines 2018-03-31 01:26:02 -04:00
Phlosioneer
fa1d125ae6 Add test for rustdoc ignore test
This will check for regression on issue #32556
2018-03-31 00:59:08 -04:00
bors
1c5283b472 Auto merge of #49459 - GuillaumeGomez:primitive-intra-links, r=QuietMisdreavus
Add primitive intra-links

Part of #43466.

r? @QuietMisdreavus
2018-03-31 01:34:15 +00:00
Guillaume Gomez
d0eeb291dd Add support for variant and types fields for intra links 2018-03-30 16:22:57 +02:00
Guillaume Gomez
d91a821ee8 Remove unneeded trait implementations titles 2018-03-29 14:33:16 +02:00
Guillaume Gomez
561e8efb7d Add primitive intra-links 2018-03-29 13:43:55 +02:00
kennytm
5dc80dc31f
Rollup merge of #49442 - GuillaumeGomez:text-overlap, r=QuietMisdreavus
Fix text overlap

Fixes #49006.

r? @QuietMisdreavus
2018-03-28 17:55:17 +02:00