Commit graph

2181 commits

Author SHA1 Message Date
Noah Lev
1da8659fa6 Remove unused impl of GetDefId for Typedef 2021-10-21 19:56:33 -07:00
Noah Lev
b987fd78c2 Fix docs for inline::build_impl
Based on looking at the source code, it looks like the `did` needs to be
for an impl, not functions in an impl.
2021-10-21 19:54:14 -07:00
bors
4626184caf Auto merge of #89998 - camelid:box-default, r=jyn514
rustdoc: Box some fields of `GenericParamDefKind` to reduce size

This change shrinks `GenericParamDef` from 120 to 56 bytes. `GenericParamDef` is
used a lot, so the extra indirection should hopefully be worth the size savings.

r? `@ghost`
2021-10-21 01:38:55 +00:00
Noah Lev
90986897c5 rustdoc: Box ty field of GenericParamDefKind::Const
This cuts the size of `GenericParamDef` in half, from 104 bytes to 56
bytes. I think the extra indirection should be worth the size savings.
2021-10-18 10:16:01 -07:00
Noah Lev
9b52a633e4 rustdoc: Box default fields of GenericParamDefKind
This reduces the size of `GenericParamDef` a bit, but some of the size
savings are hidden because of the `ty` field of the `Const` variant.
I will box that in the next commit.
2021-10-18 10:14:59 -07:00
Matthias Krüger
874f19f462
Rollup merge of #89989 - camelid:type-size, r=jyn514
rustdoc: Add static size assertion for `clean::Type`

r? `@jyn514`
2021-10-18 08:13:29 +02:00
Noah Lev
9e60288640 Add static size assertion for clean::GenericParamDef 2021-10-17 19:40:23 -07:00
Noah Lev
10b9b3d383 Add static size assertion for clean::Type 2021-10-17 14:30:53 -07:00
r00ster91
3c1d55422a Some "parenthesis" and "parentheses" fixes 2021-10-17 12:04:01 +02:00
John Kugelman
169113935f Fix spelling: Cannonical -> Canonical 2021-10-10 00:44:34 -04:00
bors
a8f2463c68 Auto merge of #88379 - camelid:cleanup-clean, r=jyn514
rustdoc: Cleanup various `clean` types

Cleanup various `clean` types.
2021-10-09 19:05:08 +00:00
bors
e0aaffd8a4 Auto merge of #89576 - tom7980:issue-89275-fix, r=estebank
Prevent error reporting from outputting a recursion error if it finds an ambiguous trait impl during suggestions

Closes #89275

This fixes the compiler reporting a recursion error during another already in progress error by trying to make a conversion method suggestion and encounters ambiguous trait implementations that can convert a the original type into a type that can then be recursively converted into itself via another method in the trait.

Updated OverflowError struct to be an enum so I could differentiate between passes - it's no longer a ZST but I don't think that should be a problem as they only generate when there's an error in compiling code anyway
2021-10-08 11:44:45 +00:00
Guillaume Gomez
09c76884bc Simplify AttributesExt::cfg function and remove error emissions since they are not useful 2021-10-06 21:22:56 +02:00
Guillaume Gomez
8fac41a530 Clean up code a bit:
* Remove "bool_to_options" feature
 * Update version for compiler feature
 * rustfmt
2021-10-06 20:23:57 +02:00
Tom Farmer
0950d5afe2 Issue 89275 fix and test
Issue 89275 fix and test

Fix librustdoc OverflowError usage

rust tidy run

Issue 89275 fix and test
2021-10-05 22:43:06 +01:00
Wim Looman
18fdd816b7 Allow adding a set of cfg's to hide from being implicitly doc(cfg)'d
By adding #![doc(cfg_hide(foobar))] to the crate attributes the cfg
 #[cfg(foobar)] (and _only_ that _exact_ cfg) will not be implicitly
treated as a doc(cfg) to render a message in the documentation.
2021-10-05 18:04:15 +02:00
Wim Looman
10cdbd847f Make cfg implicitly imply doc(cfg)
This is only active when the `doc_cfg` feature is active.

The implicit cfg can be overridden via #[doc(cfg(...))], so e.g. to
hide a #[cfg] you can use something like:

```rust
 #[cfg(unix)]
 #[doc(cfg(all()))]
pub struct Unix;
```

(since `all()` is always true, it is never shown in the docs)
2021-10-05 17:25:44 +02:00
Noah Lev
ebbcafbfa3 Fix implementation of clean::Path::whole_name()
I think that before this commit, the path `::std::vec::Vec` would have
rendered as `{{root}}::std::vec::Vec`. Now, it should render correctly
as `::std::vec::Vec`.
2021-10-03 12:40:53 -07:00
Noah Lev
f359b316df Fix a place that used the old Path representation 2021-10-03 12:29:17 -07:00
Noah Lev
f9f3c9feb4 Rename strip_path to strip_path_generics
The new name is more descriptive of what the function does.
2021-10-03 11:20:35 -07:00
Noah Lev
5f744f33f6 Explain ResolvedPath vs hir::Path
Co-authored-by: Joshua Nelson <github@jyn.dev>
2021-10-02 15:57:57 -07:00
Noah Lev
962e451443 Replace all uses of path.res.def_id() with path.def_id() 2021-10-02 15:57:57 -07:00
Noah Lev
82b52e1951 Remove outdated comment
`CACHE_KEY` no longer exists.
2021-10-02 15:57:57 -07:00
Noah Lev
e4ce68baa8 Update clean::Type docs
They've barely been updated since this version of `rustdoc` (originally
called `rustdoc_ng`) was checked into the tree!

Note that the formatting of a couple `Type` variants changed; rustfmt
seems to change formatting based on whether all variants have docs.
2021-10-02 15:57:57 -07:00
Noah Lev
d4675aad5c Turn some comments into docs 2021-10-02 15:57:56 -07:00
bors
6e12110812 Auto merge of #89449 - Manishearth:rollup-3alb61f, r=Manishearth
Rollup of 7 pull requests

Successful merges:

 - #85223 (rustdoc: Clarified the attribute which prompts the warning)
 - #88847 (platform-support.md: correct ARMv7+MUSL platform triple notes)
 - #88963 (Coerce const FnDefs to implement const Fn traits )
 - #89376 (Fix use after drop in self-profile with llvm events)
 - #89422 (Replace whitespaces in doctests' name with dashes)
 - #89440 (Clarify a sentence in the documentation of Vec (#84488))
 - #89441 (Normalize after substituting via `field.ty()`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2021-10-01 22:47:22 +00:00
Manish Goregaokar
743e842afb
Rollup merge of #88963 - fee1-dead:const-iterator, r=oli-obk
Coerce const FnDefs to implement const Fn traits

You can now pass a FnDef to a function expecting `F` where `F: ~const FnTrait`.

r? ``@oli-obk``

``@rustbot`` label T-compiler F-const_trait_impl
2021-10-01 14:46:48 -07:00
bors
c02371c442 Auto merge of #88880 - cjgillot:no-krate, r=oli-obk
Rework HIR API to make invocations of the hir_crate query harder.

`hir_crate` forces the recomputation of queries that depend on it.

This PR aims at avoiding useless invocations of `hir_crate` by making dependent code go through `tcx.hir()`.
2021-10-01 20:06:34 +00:00
Noah Lev
eec21d2176 Avoid intermediate collect() 2021-09-30 13:52:58 -07:00
Noah Lev
a83112fe3e Remove temporary GetDefId impl for Path 2021-09-30 13:52:58 -07:00
Noah Lev
4128a3dc1f Remove unused Clean impl 2021-09-30 13:52:58 -07:00
Noah Lev
e20bb157a2 Remove unnecessary Box in Type::QPath 2021-09-30 13:52:58 -07:00
Noah Lev
b8351c30e4 Avoid unnecessary matches by changing Clean impl 2021-09-30 13:52:58 -07:00
Noah Lev
91d3b7201e Use Path instead of Type in PolyTrait
The change to `impl Clean<Path> for hir::TraitRef<'_>` was necessary to
fix a test failure for `src/test/rustdoc/trait-alias-mention.rs`.
Here's why:

The old code path was through `impl Clean<Type> for hir::TraitRef<'_>`,
which called `resolve_type`, which in turn called `register_res`. Now,
because `PolyTrait` uses a `Path` instead of a `Type`, the impl of
`Clean<Path>` was being run, which did not call `register_res`, causing
the trait alias to not be recorded in the `external_paths` cache.
2021-09-30 13:52:58 -07:00
Noah Lev
4c6385ff93 Make Impl.trait_ a Path, not a Type
It should only ever be a `ResolvedPath`, so this (a) enforces that, and
(b) reduces the size of `Impl`.

I had to update a test because the order of the rendered auto trait impl
bounds changed. I think the order changed because rustdoc sorts auto
trait bounds using their `Debug` output.
2021-09-30 13:52:57 -07:00
Noah Lev
d91946b3f4 Remove Path.global 2021-09-30 13:52:57 -07:00
Eric Huss
8dfe52293a
Rollup merge of #89297 - GuillaumeGomez:remove-never-from-type-enum, r=camelid
Remove Never variant from clean::Type enum

Fixes #89287.

r? ``@camelid``
2021-09-29 19:33:38 -07:00
Eric Huss
7c23ff278e
Rollup merge of #89098 - GuillaumeGomez:where-bounds-order, r=camelid
Fix generics where bounds order

Fixes #88809.

Like said on the above issue, the issue is that we were expecting `Symbol` comparisons to be string-based but they are integer-based (because `Symbol` is an integer), messing up the bounds order. To fix it, I simply stored into a `FxIndexMap` instead.

r? ``@jyn514``
2021-09-29 19:33:36 -07:00
Camille GILLOT
db9fea508a Avoid more invocations of hir_crate query. 2021-09-29 23:16:47 +02:00
Guillaume Gomez
bdd34717b8 Remove Never variant from clean::Type enum 2021-09-29 20:29:33 +02:00
bors
583437a6dd Auto merge of #89203 - GuillaumeGomez:cleanup-rustdoc-types, r=camelid
Clean up clean/types.rs file by making the implementations follow the type declaration

This PR doesn't change anything, it simply moves things around: when reading the code, I realized a few times that a type declaration and implementations on it might be separated by some other type declarations, which makes the reading much more complicated. I put back impl and declaration together.

r? `@camelid`
2021-09-27 07:54:16 +00:00
Manish Goregaokar
c118d8b79b
Rollup merge of #89198 - hkmatsumoto:hide-hidden-methods, r=jyn514
rustdoc: Don't show hidden trait methods

Fix #89186.

By skipping trait items whose attributes include `hidden`, we avoid showing such trait methods.
2021-09-25 18:22:19 -07:00
Manish Goregaokar
7777f952f0
Rollup merge of #88895 - camelid:cleanup-pt2, r=jyn514
rustdoc: Cleanup `clean` part 2

Split out from #88379. This contains the following commits from that PR:

- Remove `Type::ResolvedPath.is_generic`
- Rename `is_generic()` to `is_assoc_ty()`

r? `@jyn514`
2021-09-25 18:22:17 -07:00
Noah Lev
dace2ee674 rustdoc: Document is_assoc_ty()
It's adapted from the old documentation for the `is_generic` field.
2021-09-25 09:50:12 -07:00
Hirochika Matsumoto
195f752109
Elaborate comment
Co-authored-by: Joshua Nelson <github@jyn.dev>
2021-09-26 01:07:10 +09:00
Hirochika Matsumoto
3239f06585 rustdoc: Don't show hidden trait methods
By skipping trait items whose attributes include `hidden`, we void
showing
such trait methods.
2021-09-25 16:16:30 +09:00
Jubilee
ee2e97c416
Rollup merge of #89001 - jackh726:binder-cleanup, r=nikomatsakis
Be explicit about using Binder::dummy

This is somewhat of a late followup to the binder refactor PR. It removes `ToPredicate` and `ToPolyTraitImpls` that hide the use of `Binder::dummy`. While this does make code a bit more verbose, it allows us be more careful about where we create binders.

Another alternative here might be to add a new trait `ToBinder` or something with a `dummy()` fn. Which could still allow grepping but allows doing something like `trait_ref.dummy()` (but I also wonder if longer-term, it would be better to be even more explicit with a `bind_with_vars(ty::List::empty())` *but* that's not clear yet.

r? ``@nikomatsakis``
2021-09-24 11:40:11 -07:00
Guillaume Gomez
1c23349504 Clean up clean/types.rs file by making the implementations follow the type declaration 2021-09-23 20:03:38 +02:00
bors
cfff31bc83 Auto merge of #89134 - est31:revert_rustdoc_box_syntax, r=GuillaumeGomez
Revert the rustdoc box syntax removal

Reverts the rustdoc box syntax removal from #87781.

It turned out to cause (minor) perf regressions.

Requested in https://github.com/rust-lang/rust/pull/87781#issuecomment-922589168
2021-09-22 09:55:13 +00:00
est31
f809ed657c Revert the rustdoc box syntax removal
It turned out to cause (minor) perf regressions.
2021-09-21 01:54:23 +02:00