Commit graph

6730 commits

Author SHA1 Message Date
Rune Tynan
c689b97fba
Split JSON into separately versioned crate 2021-01-27 18:56:57 -05:00
Guillaume Gomez
d78e1ed623 Fix clean/types doc links 2021-01-27 10:05:06 +01:00
Guillaume Gomez
cac238e4a3 More cleanup 2021-01-27 10:05:06 +01:00
Guillaume Gomez
9a64180f0d Unify cache usage and improve naming 2021-01-27 10:05:06 +01:00
Guillaume Gomez
522f48cb3f Improve documentation on GetDefId trait's methods 2021-01-27 10:05:06 +01:00
Guillaume Gomez
d98a72c77b Update to new rustdoc APIs 2021-01-27 10:05:06 +01:00
Guillaume Gomez
6a36b3f49d Apply review comments and improve code 2021-01-27 10:05:05 +01:00
Guillaume Gomez
19630ead41 Remove cache usage wherever possible 2021-01-27 10:05:05 +01:00
Guillaume Gomez
c448270099 Use empty Cache for methods requiring it when filling Cache itself 2021-01-27 10:05:05 +01:00
Guillaume Gomez
9fd5a67984 Remove CACHE_KEY global 2021-01-27 10:05:05 +01:00
Yuki Okushi
1308c1445c
Rollup merge of #81299 - GuillaumeGomez:fix-eslint-detected-bugs, r=Nemo157
Fix some bugs reported by eslint

Simply went into `src/librustdoc/html/static/` and ran `eslint *.js` in case you want to reproduce. :)

r? ``````@Nemo157``````
2021-01-27 04:43:22 +09:00
Guillaume Gomez
042facb935 Fix some bugs reported by eslint 2021-01-25 10:32:58 +01:00
Jonas Schievink
ee4461a996
Rollup merge of #81302 - LeSeulArtichaut:80777-trait-render, r=jyn514
Fix rendering of stabilization version for trait implementors

Rustdoc compares an item's stabilization version with its parent's to not render it if they are the same. Here, the implementor was compared with itself, resulting in the stabilization version never getting shown.

This probably needs a test.

Fixes #80777.
r? `@jyn514`
2021-01-24 22:10:04 +01:00
Jonas Schievink
504d6de52d
Rollup merge of #81264 - Swatinem:doctest-run-directory, r=jyn514
Add unstable option to control doctest run directory

This option will allow splitting the compile-time from the run-time
directory of doctest invocations and is one step to solve
https://github.com/rust-lang/cargo/issues/8993#issuecomment-760088944

r? `@jyn514`
2021-01-24 22:09:59 +01:00
LeSeulArtichaut
20a460e1cf Fix rendering of stabilization version for trait implementors 2021-01-23 22:02:06 +01:00
Jonas Schievink
64cf8c2e78
Rollup merge of #81288 - camelid:fix-trait-item-vis, r=jyn514
rustdoc: Fix visibility of trait and impl items

Fixes #81274.

r? `@jyn514`
2021-01-23 20:16:16 +01:00
Jonas Schievink
81647c627a
Rollup merge of #81275 - jyn514:time-render, r=wesleywiser
Fix <unknown> queries and add more timing info to render_html

Closes https://github.com/rust-lang/rust/issues/81251.

##  Fix `<unknown>` queries

This happened because `alloc_query_strings` was never called.

##  Add more timing info to render_html

This still has some issues I'm not sure how to work out:

- `create_renderer` and `renderer_after_krate` aren't shown by default.
  I want something like `verbose_generic_activity_with_arg`, but it doesn't exist.

I'm also not sure how to show activities that aren't on by default - I
tried `-Z self-profile -Z self-profile-args=all`, but it didn't show up.

r? `@wesleywiser`
2021-01-23 20:16:10 +01:00
Arpad Borsos
9b1d27d440 Add option to control doctest run directory
This option will allow splitting the compile-time from the run-time
directory of doctest invocations and is one step to solve
https://github.com/rust-lang/cargo/issues/8993#issuecomment-760088944
2021-01-23 18:52:51 +01:00
LeSeulArtichaut
1129e86780 Cleanup render_stability_since_raw to remove code duplication 2021-01-23 18:05:59 +01:00
Joshua Nelson
ca72f9ed70 Calculate self-profile strings in Compiler::enter instead in codegen
This avoids each tool having to separately find and call
`self_profile_alloc_strings`.

- Don't compute the global context if it hasn't yet been computed

  This avoids giving extraneous errors about unresolved names if an error
  occurs during parsing.
2021-01-23 11:42:15 -05:00
Joshua Nelson
1d1010f1af Add more timing info to render_html
- Show `create_renderer` and `renderer_after_crate` by default
- Don't rewrite `extra_verbose_generic_activity`
2021-01-23 11:42:11 -05:00
Camelid
93e51b185a rustdoc: Fix visibility of trait and impl items 2021-01-22 18:30:30 -08:00
Joshua Nelson
bf86fd5221 Fix <unknown> queries
This happened because `alloc_query_strings` was never called.
2021-01-22 19:20:37 -05:00
Mara Bos
2ceee72427
Rollup merge of #81227 - CraftSpider:struct-type-clean, r=jyn514
Remove doctree::StructType

Also removes it from the Union type, as unions can only ever be 'Plain'. Adds a new StructType to JSON, 'union', as the easiest way to encode the type of a union there. This leaves only one item in doctree, `Module`.

r? `@jyn514`
2021-01-22 14:30:16 +00:00
Mara Bos
1cc13b4f5a
Rollup merge of #81225 - CraftSpider:json-opt-docs, r=jyn514
Make 'docs' nullable in rustdoc-json output

Matches the backing better, and makes it so there's a difference between 'empty docs' and 'no docs'.
2021-01-22 14:30:14 +00:00
Mara Bos
98c03644b1
Rollup merge of #80573 - jyn514:tool-lints, r=GuillaumeGomez
Deny rustc::internal lints for rustdoc and clippy

- Fix rustc::internal lints for rustdoc
- Deny internal lints only for rustdoc and clippy (previously the lints were ignored for clippy because -Zunstable-options didn't get passed)
2021-01-22 14:30:03 +00:00
Joshua Nelson
0797ffec09 Deny internal lints for rustdoc 2021-01-21 23:05:52 -05:00
Joshua Nelson
a194881991 Fix rustc::internal lints on rustdoc 2021-01-21 22:25:59 -05:00
bors
dc1eee2f25 Auto merge of #81177 - Aaron1011:fix/force-capture-tokens, r=petrochenkov
Force token collection to run when parsing nonterminals

Fixes #81007

Previously, we would fail to collect tokens in the proper place when
only builtin attributes were present. As a result, we would end up with
attribute tokens in the collected `TokenStream`, leading to duplication
when we attempted to prepend the attributes from the AST node.

We now explicitly track when token collection must be performed due to
nomterminal parsing.
2021-01-22 02:42:38 +00:00
Rune Tynan
26565f05c0
Bump format version 2021-01-21 21:18:31 -05:00
Yuki Okushi
0aeb2fcba1
Rollup merge of #81184 - jyn514:combine-after, r=CraftSpider
Remove unnecessary `after_run` function

It's called at the same time and in the same place as `after_krate`, so
they can be combined.
2021-01-21 20:04:51 +09:00
Aaron Hill
11b1e37016
Force token collection to run when parsing nonterminals
Fixes #81007

Previously, we would fail to collect tokens in the proper place when
only builtin attributes were present. As a result, we would end up with
attribute tokens in the collected `TokenStream`, leading to duplication
when we attempted to prepend the attributes from the AST node.

We now explicitly track when token collection must be performed due to
nomterminal parsing.
2021-01-20 18:09:32 -05:00
Rune Tynan
811fa59db0
Add explanation of None vs Some("") 2021-01-20 17:52:52 -05:00
Rune Tynan
3349b40d47
Remove StructType entirely and replace it with CtorKind 2021-01-20 17:19:46 -05:00
Rune Tynan
450c5eae1d
Move StructType to clean, remove it from Unions, make JSON output whether something is a union 2021-01-20 16:46:34 -05:00
Rune Tynan
76511a7a71
Make 'docs' optional 2021-01-20 15:58:03 -05:00
Guillaume Gomez
1f777f36e8
Rollup merge of #81161 - GuillaumeGomez:remove-inline-script, r=Nemo157
Remove inline script tags

Fixes #81133.

cc ``@pietroalbini``

r? ``@Nemo157``
2021-01-19 10:27:58 +01:00
Guillaume Gomez
670acf7483
Rollup merge of #80382 - GuillaumeGomez:search-result-tab-picking, r=Nemo157,pickfire
Improve search result tab handling

Fixes #80378.

If the current search result tab is empty, it picks the first non-empty one. If all are empty, the current one doesn't change. It can be tested with "-> string" (where only the "returned elements" tab is not empty).

r? `@jyn514`
2021-01-19 10:27:50 +01:00
Joshua Nelson
d926147ccb Remove unnecessary after_run function
It's called at the same time and in the same place as `after_krate`, so
they can be combined.
2021-01-19 02:04:18 -05:00
bors
66eb982166 Auto merge of #81015 - jyn514:feature-gate-ptr, r=camelid
Feature-gate `pointer` and `reference` in intra-doc links

r? `@camelid`

Addresses (but does not close) https://github.com/rust-lang/rust/issues/80896.
2021-01-18 11:35:19 +00:00
Guillaume Gomez
1d1ab21ad9 Remove inline script tags 2021-01-18 12:03:53 +01:00
bors
4253153db2 Auto merge of #80679 - jackh726:predicate-kind-take2, r=lcnr
Remove PredicateKind and instead only use Binder<PredicateAtom>

Originally brought up in https://github.com/rust-lang/rust/pull/76814#discussion_r546858171

r? `@lcnr`
2021-01-17 20:49:11 +00:00
Joshua Nelson
fc53594756 Feature-gate pointer and reference in intra-doc links
- Only feature gate associated items
- Add docs to unstable book
2021-01-17 15:27:35 -05:00
Mara Bos
ffcbeefd64
Rollup merge of #80765 - petrochenkov:traitsinscope, r=matthewjasper
resolve: Simplify collection of traits in scope

"Traits in scope" for a given location are collected by walking all scopes in type namespace, collecting traits in them and pruning traits that don't have an associated item with the given name and namespace.

Previously we tried to prune traits using some kind of hygienic resolution for associated items, but that was complex and likely incorrect, e.g. in #80762 correction to visibilites of trait items caused some traits to not be in scope anymore.
I previously had some comments and concerns about this in https://github.com/rust-lang/rust/pull/65351.

In this PR we are doing some much simpler pruning based on `Symbol` and `Namespace` comparisons, it should be enough to throw away 99.9% of unnecessary traits.
It is not necessary for pruning to be precise because for trait aliases, for example, we don't do any pruning at all, and precise hygienic resolution for associated items needs to be done in typeck anyway.

The somewhat unexpected effect is that trait imports introduced by macros 2.0 now bring traits into scope due to the removed hygienic check on associated item names.
I'm not sure whether it is desirable or not, but I think it's acceptable for now.
The old check was certainly incorrect because macros 2.0 did bring trait aliases into scope.
If doing this is not desirable, then we should come up with some other way to avoid bringing traits from macros 2.0 into scope, that would accommodate for trait aliases as well.

---

The PR also contains a couple of pure refactorings
- Scope walk is done by using `visit_scopes` instead of a hand-rolled version.
- Code is restructured to accomodate for rustdoc that also wants to query traits in scope, but doesn't want to filter them by associated items at all.

r? ```@matthewjasper```
2021-01-17 12:24:47 +00:00
Jack Huey
dcad9f1893 More review comments 2021-01-16 18:56:37 -05:00
Jack Huey
3dea68de1d Review changes 2021-01-16 18:56:37 -05:00
Jack Huey
476bd53058 Cleanup 2021-01-16 18:50:34 -05:00
Mara Bos
9df8dcbcde
Rollup merge of #81040 - osa1:fix_80992, r=jyn514
doctest: Reset errors before dropping the parse session

The first parse is to collect whether the code contains macros, has
`main`, and uses other crates. In that pass we ignore errors as those
will be reported when the test file is actually built.

For that we need to reset errors in the `Diagnostic` otherwise when
dropping it unhandled errors will be reported as compiler bugs.

Fixes #80992
2021-01-16 17:30:10 +00:00
Mara Bos
1368e81bcb
Rollup merge of #81021 - CraftSpider:rustdoc-remove-import, r=jyn514
Remove doctree::Import

Per the title. Part of cleaning up doctree
2021-01-16 17:30:08 +00:00
Ömer Sinan Ağacan
eef383fa00 doctest: Reset errors before dropping the parse session
The first parse is to collect whether the code contains macros, has
`main`, and uses other crates. In that pass we ignore errors as those
will be reported when the test file is actually built.

For that we need to reset errors in the `Diagnostic` otherwise when
dropping it unhandled errors will be reported as compiler bugs.

Fixes #80992
2021-01-16 06:55:29 +03:00