Commit Graph

50 Commits

Author SHA1 Message Date
Guillaume Gomez
0cde85523f Rework rustdoc const type 2021-03-24 21:48:34 +01:00
Camelid
8b9b106cdc Rename clean::Item.source to span
Its type is called `clean::Span`, and also the name in the rest of
rustdoc and rustc for this kind of field is `span`.
2021-03-21 19:47:11 -07:00
Guillaume Gomez
f879ecc4ef Make ItemKind::ExternCrate looks like hir::ItemKind::ExternCrate to make transition over hir::ItemKind simpler 2021-03-05 16:04:24 +01:00
Joshua Nelson
4d7a648485 Remove the dummy cache in DocContext
The same information is available everywhere; the only reason the dummy
cache was needed is because it waas previously stored in three different
places. This consolidates the info a bit so the cache in `DocContext` is
used throughout. As a bonus, it means `renderinfo` is used much much
less.

- Return a `Cache` from `run_global_ctxt`, not `RenderInfo`
- Remove the unused `render_info` from `run_renderer`
- Remove RefCell around `inlined`
- Add intra-doc links
2021-03-01 00:30:30 -05:00
Camelid
e4ac499b7e Remove many RefCells from DocContext
I left some of them so this change doesn't balloon in size and because
removing the RefCell in `DocContext.resolver` would require compiler
changes.

Thanks to `@jyn514` for making this a lot easier with #82020!
2021-02-22 10:02:56 -08:00
Joshua Nelson
6da9e3c226 Take &mut DocContext in passes
This should hopefully allow for less interior mutability.
2021-02-16 20:58:38 -05:00
Camelid
f620b5ced2 rustdoc: Remove unnecessary optional
Previously, the HTML output format was represented by both
`Some(OutputFormat::Html)` and `None` so there's no need to have an
optional. Instead, `OutputFormat::Html` is explicitly the default and we
no longer have a "tri-state enum".
2021-01-28 18:00:07 -08:00
Guillaume Gomez
9fd5a67984 Remove CACHE_KEY global 2021-01-27 10:05:05 +01:00
Guillaume Gomez
4ba1928fa2 Improve code for DocFragment rework 2021-01-02 19:16:27 +01:00
Guillaume Gomez
122b141f58 End of rework of Attributes struct 2021-01-02 16:55:12 +01:00
bors
158f8d034b Auto merge of #80014 - jyn514:box-item-kind, r=nnethercote
[rustdoc] Box ItemKind to reduce the size of `Item`

This brings the size of `Item` from

```
[src/librustdoc/lib.rs:103] std::mem::size_of::<Item>() = 536
```

to

```
[src/librustdoc/lib.rs:103] std::mem::size_of::<Item>() = 136
```

This is an alternative to https://github.com/rust-lang/rust/pull/79967; I don't think it makes sense to make both changes.

Helps with #79103.
2020-12-29 10:41:01 +00:00
Joshua Nelson
4a4426377e Box ItemKind to reduce the size of Item
This brings the size of `Item` from

```
[src/librustdoc/lib.rs:103] std::mem::size_of::<Item>() = 680
```

to

```
[src/librustdoc/lib.rs:103] std::mem::size_of::<Item>() = 280
```
2020-12-23 12:50:35 -05:00
pierwill
aec3575aa7 Rename rustc_middle::lint::LintSource
Rename rustc_middle::lint::LintSource to rustc_middle::lint::LintLevelSource.
2020-12-21 14:30:50 -08:00
Joshua Nelson
4fa95b3a07 Calculate span info on-demand instead of ahead of time
This should *vastly* reduce memory usage.
2020-12-12 00:01:01 -05:00
Joshua Nelson
ab1e634295 Make fold_item_recur non-nullable
This gets rid of a bunch of `unwrap()`s and makes it a little more clear
what's going on.

Originally I wanted to make `fold_item` non-nullable too, which would
have been a lot nicer to work with, but unfortunately `stripper` does
actually return `None` in some places. I might make a follow-up moving
stripper to be special and not a pass so that passes can be
non-nullable.
2020-11-22 12:59:01 -05:00
Joshua Nelson
d6c16e4253 Make all rustdoc functions and structs crate-private
This gives warnings about dead code.
2020-11-15 11:21:12 -05:00
Joshua Nelson
03cbee84af Rename ItemEnum -> ItemKind, inner -> kind 2020-11-14 03:46:18 -05:00
Guillaume Gomez
5d20e1aa03 Improve lint level handling 2020-10-12 13:50:31 +02:00
Guillaume Gomez
22465b35a6 Apply same treatment to MISSING_DOC_CODE_EXAMPLES 2020-10-12 13:46:37 +02:00
Guillaume Gomez
b31f5d05b1 Inherit lint level from parents 2020-10-12 13:46:37 +02:00
Roman
02e6b861eb rustdoc: skip allow missing doc in cover. report
During the document coverage reporting with
```bash
rustdoc something.rs -Z unstable-options --show-coverage
```

the coverage report also includes parts of the code that are marked
with `#[allow(missing_docs)]`, which outputs lower numbers in the
coverage report even though these parts should be ignored for the
calculation.

Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-10-12 13:46:37 +02:00
Joshua Nelson
5f76b95e9b Change DocFragments from enum variant fields to structs with a nested enum
This makes the code a lot easier to work with. It also makes it easier
to add new fields without updating each variant and `match`
individually.

- Name the `Kind` variant after `DocFragmentKind` from `collapse_docs`
- Remove unneeded impls
2020-10-03 19:21:56 -04:00
Guillaume Gomez
dadde88eba Unify checks for lint missing_doc_code_examples and --show-coverage 2020-08-21 18:08:19 +02:00
Guillaume Gomez
adeedf5243 Show line even if there is no code examples 2020-08-21 16:43:04 +02:00
Guillaume Gomez
b20b6f8714 Ignore more kind of items for doc examples 2020-08-21 13:51:03 +02:00
Guillaume Gomez
5e9cc4e319 fmt 2020-08-20 21:28:06 +02:00
Guillaume Gomez
9c254c18d6 Update how doc examples are counted 2020-08-20 21:26:57 +02:00
Guillaume Gomez
631c80659d Remove "total" columns in --show-coverage output 2020-08-20 21:09:40 +02:00
Guillaume Gomez
6fb7e02a36 Update rustdoc coverage UI test 2020-08-20 17:42:17 +02:00
Guillaume Gomez
3307ba8212 Ignore code examples on given items where it doesn't make sense 2020-08-20 17:41:36 +02:00
Guillaume Gomez
d9d84dca8e Add doc examples count for --show-coverage 2020-08-18 13:31:23 +02:00
Nicholas Nethercote
e539dd65f8 Eliminate the SessionGlobals from librustc_ast.
By moving `{known,used}_attrs` from `SessionGlobals` to `Session`. This
means they are accessed via the `Session`, rather than via TLS. A few
`Attr` methods and `librustc_ast` functions are now methods of
`Session`.

All of this required passing a `Session` to lots of functions that didn't
already have one. Some of these functions also had arguments removed, because
those arguments could be accessed directly via the `Session` argument.

`contains_feature_attr()` was dead, and is removed.

Some functions were moved from `librustc_ast` elsewhere because they now need
to access `Session`, which isn't available in that crate.
- `entry_point_type()` --> `librustc_builtin_macros`
- `global_allocator_spans()` --> `librustc_metadata`
- `is_proc_macro_attr()` --> `Session`
2020-08-08 12:03:42 +10:00
Matthias Krüger
951a3661ad remove redundant import (clippy::single_component_path_imports)
remove redundant format!() call (clippy::useless_format)
don't use ok() before calling expect() (clippy::ok_expect)
2020-03-20 20:23:03 +01:00
Guillaume Gomez
f1070b1525 Replace ToJson with serde 2020-03-02 13:19:10 +01:00
Guillaume Gomez
10492c392a Add support for json output in show-coverage option 2020-03-02 13:18:45 +01:00
Vadim Petrochenkov
e08c279eac Rename syntax to rustc_ast in source code 2020-02-29 21:59:09 +03:00
David Tolnay
90adafbc9e Distinguish between private items and hidden items in rustdoc
I believe rustdoc should not be conflating private items (visibility
lower than `pub`) and hidden items (attribute `doc(hidden)`). This
matters now that Cargo is passing --document-private-items by default
for bin crates. In bin crates that rely on macros, intentionally hidden
implementation details of the macros can overwhelm the actual useful
internal API that one would want to document.

This PR restores the strip-hidden pass when documenting private items,
and introduces a separate unstable --document-hidden-items option to
skip the strip-hidden pass. The two options are orthogonal to one
another.
2020-01-04 11:28:53 -08:00
Mazdak Farrokhzad
4ff12ce4c1 Normalize syntax::symbol imports. 2020-01-02 13:57:04 +01:00
Vadim Petrochenkov
70f1d57048 Rename syntax_pos to rustc_span in source code 2020-01-01 09:15:18 +03:00
Mark Rousskov
a06baa56b9 Format the world 2019-12-22 17:42:47 -05:00
Mark Rousskov
04b27efa00 Move to print functions on types instead of impl fmt::Display
This will eventually allow us to easily pass in more parameters to the
functions without TLS or other such hacks
2019-09-13 19:44:44 -04:00
Nicholas Nethercote
fb084a48e2 Pass a Symbol to check_name, emit_feature_err, and related functions. 2019-05-13 09:29:22 +10:00
John Kåre Alsaker
51938c61f6 Make the rustc driver and interface demand driven 2019-03-10 04:49:45 +01:00
QuietMisdreavus
e28cf74162 remove unused Display impl 2019-03-05 14:18:26 -06:00
QuietMisdreavus
1b63543dc6 track items per-file instead of per-type 2019-02-28 16:13:55 -06:00
QuietMisdreavus
3ce19b4a2c tweak wording of extern types 2019-02-28 16:11:21 -06:00
QuietMisdreavus
5eb1ab5265 print doc coverage as a table of individual item types 2019-02-28 16:11:21 -06:00
QuietMisdreavus
95500c078b refactor: combine item count numbers into a new struct 2019-02-28 16:07:45 -06:00
QuietMisdreavus
fc9459351c count fewer items in calculate-doc-coverage 2019-02-28 16:01:27 -06:00
QuietMisdreavus
009c91a294 add option to calculate documentation coverage 2019-02-28 16:01:27 -06:00