Commit graph

1676 commits

Author SHA1 Message Date
Ellen
00a5ec1375 dont ICE on ConstEvaluatable predicates 2021-06-12 09:56:25 +01:00
Ellen
6dff51f37d rustdoc- Show defaults on const generics 2021-06-03 09:01:25 +01:00
Justus K
449a431822
rustdoc: render <Self as X>::Y type casts properly 2021-05-19 19:38:37 +02:00
Justus K
67d8d18b23
Minimize amount of fake DefIds used in rustdoc 2021-05-15 13:21:35 +02:00
Dylan DPC
0c8c21d224
Rollup merge of #84442 - jyn514:doc-cfg, r=petrochenkov
Unify rustc and rustdoc parsing of `cfg()`

This extracts a new `parse_cfg` function that's used between both.

- Treat `#[doc(cfg(x), cfg(y))]` the same as `#[doc(cfg(x)]
  #[doc(cfg(y))]`. Previously it would be completely ignored.
- Treat `#[doc(inline, cfg(x))]` the same as `#[doc(inline)]
  #[doc(cfg(x))]`. Previously, the cfg would be ignored.
- Pass the cfg predicate through to rustc_expand to be validated

Technically this is a breaking change, but doc_cfg is still nightly so I don't think it matters.

Fixes https://github.com/rust-lang/rust/issues/84437.

r? `````````@petrochenkov`````````
2021-05-07 16:19:19 +02:00
Justus K
b6120bfb35
Add type to differentiate between fake and real DefId's 2021-05-04 19:34:12 +02:00
Joshua Nelson
6eb4735acc Unify rustc and rustdoc parsing of cfg()
This extracts a new `parse_cfg` function that's used between both.

- Treat `#[doc(cfg(x), cfg(y))]` the same as `#[doc(cfg(x)]
  #[doc(cfg(y))]`. Previously it would be completely ignored.
- Treat `#[doc(inline, cfg(x))]` the same as `#[doc(inline)]
  #[doc(cfg(x))]`. Previously, the cfg would be ignored.
- Pass the cfg predicate through to rustc_expand to be validated

Co-authored-by: Vadim Petrochenkov <vadim.petrochenkov@gmail.com>
2021-05-03 12:49:43 -04:00
Dylan DPC
37ce3321eb
Rollup merge of #84811 - scottmcm:rustdoc-trait-alias-fix, r=jyn514
RustDoc: Fix bounds linking trait.Foo instead of traitalias.Foo

Fixes #84782

The code was assuming `Trait` when adding bounds to the cache, so add a check on the DefId to see what its kind really is.

r? `@jyn514`

Before:
![image](https://user-images.githubusercontent.com/18526288/116775611-6a751e80-aa53-11eb-84d0-ed6b7782be3c.png)

After:
![image](https://user-images.githubusercontent.com/18526288/116802227-d19cdc80-ab00-11eb-8133-7b34dd750da2.png)
2021-05-03 00:32:43 +02:00
Scott McMurray
40ffa94244 PR feedback 2021-05-02 12:29:23 -07:00
Dylan DPC
e643e2ebdf
Rollup merge of #84763 - tdelabro:shrink-doctree-module, r=jyn514
shrink doctree::Module

helps https://github.com/rust-lang/rust/issues/76382
2021-05-02 17:00:24 +02:00
Scott McMurray
fe540ae1bb RustDoc: Fix bounds linking trait.Foo instead of traitalias.Foo 2021-05-01 23:14:18 -07:00
Timothée Delabrouille
649bf22df5 compute where_outer on demand, remove it from Module 2021-05-01 15:33:49 +02:00
Joshua Nelson
b1f5917930 Remove unnecessary provided_trait_methods field from Impl
It can be calculated on-demand.
2021-04-30 21:38:43 -04:00
bors
727d101561 Auto merge of #84494 - tdelabro:84304-bis, r=jyn514
84304 - rustdoc: shrink Item::Attributes

Helps with https://github.com/rust-lang/rust/issues/84304
2021-04-27 20:19:57 +00:00
Timothée Delabrouille
727f9040aa cfg taken out of Attributes, put in Item
check item.is_fake() instead of self_id.is_some()

Remove empty branching in Attributes::from_ast

diverse small refacto after Josha review

cfg computation moved in merge_attrs

refacto use from_ast twice for coherence

take cfg out of Attributes and move it to Item
2021-04-27 10:29:58 +02:00
Timothée Delabrouille
b4f1dfd2c5 Removed usage of Attributes in FnDecl and ExternalCrate. Relocate part of the fields in Attributes, as functions in AttributesExt.
refacto use from_def_id_and_attrs_and_parts instead of an old trick

most of josha suggestions + check if def_id is not fake before using it in a query

Removed usage of Attributes in FnDecl and ExternalCrate. Relocate part of the Attributes fields as functions in AttributesExt.
2021-04-27 10:17:59 +02:00
Ralf Jung
43126f3573 get rid of min_const_fn references in library/ and rustdoc 2021-04-25 14:14:19 +02:00
Joshua Nelson
c44c64df71 Get rid of item.span
- Remove `span` field, adding `Item::span()` instead
- Special-case `Impl` and `Module` items
- Use dummy spans for primitive items
2021-04-24 19:21:48 -04:00
Joshua Nelson
b412b46cf7 Do the hard part first
The only bit failing was the module, so change that before removing the
`span` field.
2021-04-24 19:20:46 -04:00
Yuki Okushi
e25c5e2c25
Rollup merge of #84464 - jyn514:type-kind, r=CraftSpider
rustdoc: Get rid of `clean::TypeKind`

It does exactly the same thing as ItemType.
2021-04-25 01:53:15 +09:00
Joshua Nelson
8fd29bf6a1 Remove unused impl Clean<ItemType> for DefKind 2021-04-23 15:56:32 -04:00
Joshua Nelson
1481af9f59 Take ItemType instead of TypeKind in record_extern_fqn 2021-04-23 15:56:12 -04:00
Joshua Nelson
e29f46ce37 rustdoc: Remove unnecessary is_crate field from doctree::Module and clean::Module
It can be calculated on-demand even without a TyCtxt.

This also changed `from_item_kind` to take a whole item, which avoids
having to add more and more parameters.
2021-04-23 15:33:18 -04:00
Joshua Nelson
6c6bd88ab3 Remove keywords from ExternCrate 2021-04-22 19:16:41 -04:00
Joshua Nelson
d1d1739673 Get rid of ExternCrate::primitives 2021-04-22 19:10:22 -04:00
Joshua Nelson
3bef65ffaf Remove name field from ExternalCrate 2021-04-22 19:02:09 -04:00
Joshua Nelson
5407a69aa4 Remove src field from ExternCrate 2021-04-22 18:54:59 -04:00
Michael Howell
2dfd0bfe10 rustdoc: clean up and test macro visibility print
This fixes the overly-complex invariant mentioned in
<https://github.com/rust-lang/rust/pull/83237#issuecomment-815346570>,
where the macro source can't have any links in it only because the
cache hasn't been populated yet.
2021-04-10 14:22:06 -07:00
Jack Huey
6d5efa9f04 Add var to BoundRegion. Add query to get bound vars for applicable items. 2021-03-31 10:16:37 -04:00
Jack Huey
666859a6f8 Make late and late_anon regions track the bound var position 2021-03-31 10:15:56 -04:00
Jack Huey
84f82d348c Revert explicit lifetimes 2021-03-31 10:15:56 -04:00
Jack Huey
30187c81f6 Track bound vars 2021-03-31 10:15:27 -04:00
Camille GILLOT
9d8f833e05 Remove hir::CrateItem. 2021-03-30 20:31:06 +02:00
Guillaume Gomez
7b59089316 Split clean::Constant enum into a struct and an enum 2021-03-24 21:52:20 +01:00
Guillaume Gomez
ee5093374e Rename clean::Constant did fields to def_id 2021-03-24 21:48:36 +01:00
Guillaume Gomez
d61a1786a7 Improve new Constant variants' name 2021-03-24 21:48:36 +01:00
Guillaume Gomez
0cde85523f Rework rustdoc const type 2021-03-24 21:48:34 +01:00
Dylan DPC
5c0d880e4b
Rollup merge of #83415 - camelid:remove-crate-module-option, r=jyn514
Remove unnecessary `Option` wrapping around `Crate.module`

I'm wondering if it was originally there so that we could `take` the
module which enables `after_krate` to take an `&Crate`. However, the two
impls of `after_krate` only use `Crate.name`, so we can pass just the
name instead.
2021-03-24 01:52:36 +01:00
Camelid
a7f902b693 Remove another unnecessary Option
The previous changes mean that we can now remove this `Option`.
2021-03-23 11:19:42 -07: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
Vadim Petrochenkov
38ed36bba4 hir: Preserve used syntax in TyKind::TraitObject 2021-03-18 03:02:32 +03:00
Vadim Petrochenkov
b25d3ba781 ast/hir: Rename field-related structures
StructField -> FieldDef ("field definition")
Field -> ExprField ("expression field", not "field expression")
FieldPat -> PatField ("pattern field", not "field pattern")

Also rename visiting and other methods working on them.
2021-03-16 11:41:24 +03:00
Camille GILLOT
c701872a6c Remove hir::Item::attrs. 2021-03-09 19:27:50 +01: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
Guillaume Gomez
58a34a4dde Remove is_spotlight field from Trait 2021-02-23 21:57:40 +01: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
Camelid
6a85719b6a rustdoc: Remove unnecessary Cell around param_env 2021-02-20 17:12:22 -08:00
Joshua Nelson
2bc5a0a600 Make Clean take &mut DocContext
- Take `FnMut` in `rustc_trait_selection::find_auto_trait_generics`
- Take `&mut DocContext` in most of `clean`
- Collect the iterator in auto_trait_impls instead of iterating lazily; the lifetimes were really bad.
- Changes `fn sess` to properly return a borrow with the lifetime of `'tcx`, not the mutable borrow.
2021-02-16 21:25:14 -05:00
bors
8fe989dd76 Auto merge of #81611 - cjgillot:meowner, r=estebank
Only store a LocalDefId in some HIR nodes

Some HIR nodes are guaranteed to be HIR owners: Item, TraitItem, ImplItem, ForeignItem and MacroDef.
As a consequence, we do not need to store the `HirId`'s `local_id`, and we can directly store a `LocalDefId`.

This allows to avoid a bit of the dance with `tcx.hir().local_def_id` and `tcx.hir().local_def_id_to_hir_id` mappings.
2021-02-16 22:14:32 +00:00