Commit graph

4605 commits

Author SHA1 Message Date
Guillaume Gomez
dc628b4f67 cleanup 2019-03-23 14:43:27 +01:00
Guillaume Gomez
6bce61cd4b Fix invalid returned types generation 2019-03-21 22:49:43 +01:00
Guillaume Gomez
aefe75095a Add bounds for return types as well 2019-03-21 22:49:43 +01:00
Guillaume Gomez
6ae73e2ff6 Improve bounds search 2019-03-21 22:49:43 +01:00
Guillaume Gomez
d611301e3e Small generics search improvement 2019-03-21 22:49:43 +01:00
Guillaume Gomez
64382f4b78 Greatly improve generics handling in rustdoc search 2019-03-21 22:49:42 +01:00
bors
48e354d224 Auto merge of #58927 - GuillaumeGomez:default-keyword, r=QuietMisdreavus
Add default keyword handling in rustdoc

Fixes #58898.

r? @QuietMisdreavus
2019-03-21 08:55:50 +00:00
bors
03dafa7da3 Auto merge of #58824 - euclio:intra-link-ambiguity, r=petrochenkov
overhaul intra-doc-link ambiguity warning

Fixes #52784.

- Makes the warning part of the `intra_doc_link_resolution_failure`
lint.
- Tightens the span to just the ambiguous link.
- Reports ambiguities across all three namespaces.
- Uses structured suggestions for disambiguation.
- Adds a test for the warnings.

r? @QuietMisdreavus
2019-03-18 02:56:35 +00:00
bors
070cebd0aa Auto merge of #59178 - oli-obk:lazy_const, r=eddyb
Revert the `LazyConst` PR

The introduction of `LazyConst` did not actually achieve the code simplicity improvements that were the main reason it was introduced. Especially in the presence of const generics, the differences between the "levels of evaluatedness" of a constant become less clear. As it can be seen by the changes in this PR, further simplifications were possible by folding `LazyConst` back into `ConstValue`. We have been able to keep all the advantages gained during the `LazyConst` refactoring (like `const_eval` not returning an interned value, thus making all the `match` code simpler and more performant).

fixes https://github.com/rust-lang/rust/issues/59209

r? @eddyb @varkor
2019-03-17 11:17:03 +00:00
Vadim Petrochenkov
0cf96131f4 Refactor away NestedMetaItemKind
Remove methods `Attribute::span` and `MetaItem::span` duplicating public fields
2019-03-16 23:14:42 +03:00
Vadim Petrochenkov
63116d313d Rename MetaItem::ident to MetaItem::path 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
8371caf5ee syntax: Do not accidentally treat multi-segment meta-items as single-segment 2019-03-16 23:13:15 +03:00
Oliver Scherer
5cd2806621 Revert the LazyConst PR 2019-03-16 21:04:10 +01:00
kennytm
25e4366b4c
Rollup merge of #59158 - Manishearth:fix-minification, r=GuillaumeGomez
Revert "Don't generate minification variable if minification disabled"

Reverts #58643

Fixes #59157

https://github.com/rust-lang/rust/pull/58643 made us stop generating minification variables when minification is disabled, however they may still be needed for parent crates that were generated with minification (this will always be the case for libstd and libcore)

r? @QuietMisdreavus @GuillaumeGomez
2019-03-16 22:40:30 +08:00
kennytm
76749844da
Rollup merge of #59037 - Manishearth:intra-doc-false, r=QuietMisdreavus
Avoid some common false positives in intra doc link checking

The empty string case is never going to be a link. The numeric case may be a link, but if it were it would have resolved locally. It's more likely the makeshift markdown footnote notation (`[0]`, etc)

r? @QuietMisdreavus
2019-03-16 22:39:39 +08:00
kennytm
d869a7b16f
Rollup merge of #58873 - GuillaumeGomez:fix-auto-hide-method-doc, r=QuietMisdreavus
Fix "Auto-hide item methods documentation" setting

Fixes #58825.

r? @QuietMisdreavus
2019-03-16 14:56:14 +08:00
Andy Russell
7c66ae2fc5
use ! in macro disambiguation suggestion 2019-03-15 15:12:30 -04:00
Andy Russell
150b49a582
replace ad-hoc namespace enums 2019-03-15 14:33:41 -04:00
Andy Russell
33442b133c
overhaul intra-doc-link ambiguity warning
- Makes the warning part of the `intra_doc_link_resolution_failure`
lint.
- Tightens the span to just the ambiguous link.
- Reports ambiguities across all three namespaces.
- Uses structured suggestions for disambiguation.
- Adds a test for the warnings.
2019-03-15 14:15:06 -04:00
Eduard-Mihai Burtescu
a54a41ce47 rustc: provide DisambiguatedDefPathData in ty::print. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
8619edede1 rustc: slice substs in ty::print instead of passing the full ones. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
52b4f2daa0 rustc: remove PrintCx from ty::Print and rely on printers carrying TyCtxt. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
c0c485c3ad rustc: don't thread existential projections through path_generic_args. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
ffa00d4628 rustc: make pretty_path_generic_args' task as simple as possible. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
381fa7aa18 rustc: move ty::print::PrintConfig's fields to FmtPrinter. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
5211e37b1d rustc: don't pass Namespace explicitly, but rather track it in FmtPrinter. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
35e5123f51 rustc: support overriding type printing in ty::print::Printer. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
88d96b269c rustc: support overriding region printing in ty::print::Printer. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
7c4eecef0b rustc: pass ty::print::PrintCx by value. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
37e918526a rustc: split off most of ty::print::PrintCx's fields into a separate struct. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
5616ca857d rustc: uniformize ty::print's error handling by requiring Result. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
df6650f38c rustc: move ...::<impl ...> printing into pretty_path_qualified. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
aec5a48481 rustc: move <...>-less impl path special-case to pretty_path_qualified. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
a15bfc6f48 rustc: merge PrintCx::parameterized and def_path printing. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
9f8aaa04e0 rustc: move the contents of ty::item_path to ty::print. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
e0c75ff40d rustc: rename item_path to def_path (except the module in ty). 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
f1af5a77a0 rustc: remove TyCtxt::parent_def_id in favor of TyCtxt::parent. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
3e1cef7007 rustc: pass Option<&Substs> and Namespace around in ty::item_path. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
08d27441ec rustc: move the formatter into ty::print::PrintCx. 2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
387cacf76b rustc: remove ty::item_path::RootMode by moving local logic into the printer. 2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
228d6f45d8 rustc: remove unnecessary extern_prelude logic from ty::item_path. 2019-03-15 09:26:13 +02:00
Guillaume Gomez
541ad45a83 Add default keyword handling in rustdoc 2019-03-14 13:18:36 +01:00
Manish Goregaokar
c37dab7df8 Revert "Don't generate minification variable if minification disabled"
Fixes #59157

This reverts commit b5ae4d5888.
2019-03-13 07:39:29 -07:00
John Kåre Alsaker
51938c61f6 Make the rustc driver and interface demand driven 2019-03-10 04:49:45 +01:00
Manish Goregaokar
a4ea08420c Avoid some common false positives in intra doc link checking 2019-03-09 15:39:07 -08:00
Mazdak Farrokhzad
61e8cc571d
Rollup merge of #58626 - QuietMisdreavus:doc-coverage, r=GuillaumeGomez
rustdoc: add option to calculate "documentation coverage"

This PR adds a new flag to rustdoc, `--show-coverage`. When passed, this flag will make rustdoc count the number of items in a crate with documentation instead of generating docs. This count will be output as a table of each file in the crate, like this (when run on my crate `egg-mode`):

```
+-------------------------------------+------------+------------+------------+
| File                                | Documented |      Total | Percentage |
+-------------------------------------+------------+------------+------------+
| src/auth.rs                         |         16 |         16 |     100.0% |
| src/common/mod.rs                   |          1 |          1 |     100.0% |
| src/common/response.rs              |          9 |          9 |     100.0% |
| src/cursor.rs                       |         24 |         24 |     100.0% |
| src/direct/fun.rs                   |          6 |          6 |     100.0% |
| src/direct/mod.rs                   |         41 |         41 |     100.0% |
| src/entities.rs                     |         50 |         50 |     100.0% |
| src/error.rs                        |         27 |         27 |     100.0% |
| src/lib.rs                          |          1 |          1 |     100.0% |
| src/list/fun.rs                     |         19 |         19 |     100.0% |
| src/list/mod.rs                     |         22 |         22 |     100.0% |
| src/media/mod.rs                    |         27 |         27 |     100.0% |
| src/place/fun.rs                    |          8 |          8 |     100.0% |
| src/place/mod.rs                    |         35 |         35 |     100.0% |
| src/search.rs                       |         26 |         26 |     100.0% |
| src/service.rs                      |         74 |         74 |     100.0% |
| src/stream/mod.rs                   |         49 |         49 |     100.0% |
| src/tweet/fun.rs                    |         15 |         15 |     100.0% |
| src/tweet/mod.rs                    |         73 |         73 |     100.0% |
| src/user/fun.rs                     |         24 |         24 |     100.0% |
| src/user/mod.rs                     |         87 |         87 |     100.0% |
+-------------------------------------+------------+------------+------------+
| Total                               |        634 |        634 |     100.0% |
+-------------------------------------+------------+------------+------------+
```

Trait implementations are not counted because by default they "inherit" the docs from the trait, even though an impl can override those docs. Similarly, inherent impl blocks are not counted at all, because for the majority of cases such docs are not useful. (The usual pattern for inherent impl blocks is to throw all the methods on a type into a single impl block. Any docs you would put on that block would be better served on the type itself.)

In addition, `--show-coverage` can be combined with `--document-private-items` to get the coverage counts for everything in the crate, not just public items.

The coverage calculation is implemented as a late pass and two new sets of passes which strip out most of the work that rustdoc otherwise does when generating docs. The is because after the new pass is executed, rustdoc immediately closes instead of going on to generate documentation.

Many examples of coverage calculations have been included as `rustdoc-ui` tests.

r? @rust-lang/rustdoc
2019-03-09 17:18:13 +01:00
bors
c9f8304351 Auto merge of #59012 - pietroalbini:rollup, r=pietroalbini
Rollup of 24 pull requests

Successful merges:

 - #58080 (Add FreeBSD armv6 and armv7 targets)
 - #58204 (On return type `impl Trait` for block with no expr point at last semi)
 - #58269 (Add librustc and libsyntax to rust-src distribution.)
 - #58369 (Make the Entry API of HashMap<K, V> Sync and Send)
 - #58861 (Expand where negative supertrait specific error is shown)
 - #58877 (Suggest removal of `&` when borrowing macro and appropriate)
 - #58883 (Suggest appropriate code for unused field when destructuring pattern)
 - #58891 (Remove stray ` in the docs for the FromIterator implementation for Option)
 - #58893 (race condition in thread local storage example)
 - #58906 (Monomorphize generator field types for debuginfo)
 - #58911 (Regression test for #58435.)
 - #58912 (Regression test for #58813)
 - #58916 (Fix release note problems noticed after merging.)
 - #58918 (Regression test added for an async ICE.)
 - #58921 (Add an explicit test for issue #50582)
 - #58926 (Make the lifetime parameters of tcx consistent.)
 - #58931 (Elide invalid method receiver error when it contains TyErr)
 - #58940 (Remove JSBackend from config.toml)
 - #58950 (Add self to mailmap)
 - #58961 (On incorrect cfg literal/identifier, point at the right span)
 - #58963 (libstd: implement Error::source for io::Error)
 - #58970 (delay_span_bug in wfcheck's ty.lift_to_tcx unwrap)
 - #58984 (Teach `-Z treat-err-as-bug` to take a number of errors to emit)
 - #59007 (Add a test for invalid const arguments)

Failed merges:

 - #58959 (Add release notes for PR #56243)

r? @ghost
2019-03-09 05:19:48 +00:00
Pietro Albini
72d4c1ed67
Rollup merge of #58984 - estebank:multi-treat-err-as-bug, r=oli-obk
Teach `-Z treat-err-as-bug` to take a number of errors to emit

`-Z treat-err-as-bug` will cause `rustc` to panic after the first error is reported, like previously. `-Z treat-err-as-bug=2` will cause `rustc` to panic after 2 errors have been reported.

Fix #58983.
2019-03-08 09:42:13 +01:00
ljedrz
558a07b896 hir: remove NodeId from PatKind 2019-03-07 12:18:59 +01:00
Esteban Küber
c41ddf1773 Keep current behavior while accepting error count 2019-03-07 03:17:39 -08:00