Commit Graph

1273 Commits

Author SHA1 Message Date
Andy Russell
e991abd004 remove unused derives and variants 2019-06-26 21:15:13 -04:00
Simonas Kazlauskas
4c8d00a3ec rustdoc: generate implementors for all auto traits
Previously we would only generate a list of synthetic implementations
for two well known traits – Send and Sync. With this patch all the auto
traits known to rustc are considered. This includes such traits like
Unpin and user’s own traits.

Sadly the implementation still iterates through the list of crate items
and checks them against the traits, which for non-std crates containing
their own auto-traits will still not include types defined in std/core.

It is an improvement nontheless.
2019-06-20 17:36:43 +03:00
Eduard-Mihai Burtescu
673c3fc23a rustc: disallow cloning HIR nodes. 2019-06-19 21:16:08 +03:00
Eduard-Mihai Burtescu
887feeeaf7 rustc: replace GenericArgs::with_generic_args hack with a plain getter. 2019-06-19 21:16:04 +03:00
ljedrz
d996c4d5a3 remove _by_hir_id if there is no NodeId counterpart 2019-06-17 18:57:21 +02:00
Eduard-Mihai Burtescu
f3f9d6dfd9 Unify all uses of 'gcx and 'tcx. 2019-06-14 18:58:23 +03:00
Eduard-Mihai Burtescu
17cdd356da rustc: replace TyCtxt<'tcx, 'gcx, 'tcx> with TyCtxt<'gcx, 'tcx>. 2019-06-12 13:38:27 +03:00
Eduard-Mihai Burtescu
4a219685ff rustdoc: deny(unused_lifetimes). 2019-06-11 14:11:59 +03:00
Guillaume Gomez
8f3753703c Fix slice const generic length display 2019-06-07 15:54:16 +02:00
Niko Matsakis
f472cd9c02 Addressed points raised in review. 2019-06-05 21:09:27 +01:00
Alexander Regueiro
a71d55701e Addressed points raised in review. 2019-06-05 21:09:27 +01:00
Alexander Regueiro
aaa53ec853 Implemented for traits (associated type definitions). 2019-06-05 21:09:26 +01:00
Alexander Regueiro
35585c499f Aggregation of drive-by cosmetic changes. 2019-06-05 21:09:26 +01:00
David Wood
5e3b41e0cb rustc: remove HirId from ArgSource::AsyncFn
This commit removes the `HirId` from `ArgSource::AsyncFn`, relying on
the fact that only `simple_ident` is used in each of the locations that
previously took the original pattern from the `ArgSource::AsyncFn`.
2019-06-03 14:02:21 +01:00
David Wood
1e5f496143 rustc: async fn drop order lowering in HIR
This commit re-implements the async fn drop order lowering changes so
that it all takes place in HIR lowering, building atop the work done by
`@eddyb` to refactor `Res::Upvar`.

Previously, this types involved in the lowering were constructed in
libsyntax as they had to be used during name resolution and HIR
lowering. This was awful because none of that logic should have existed
in libsyntax.

This commit also changes `ArgSource` to keep a `HirId` to the original
argument pattern rather than a cloned copy of the pattern.
2019-06-03 10:20:35 +01:00
varkor
35ce2abf21 Use proper const printing in rustdoc 2019-05-28 22:53:16 +01:00
Andrew Xu
46b9ed4fa1 Rename "Associated*" to "Assoc*"
We are going to uniform the terminology of all associated items.
Methods that may or may not have `self` are called "associated
functions". Because `AssociatedFn` is a bit long, we rename `Associated`
to `Assoc`.
2019-05-26 17:49:02 +08:00
Oliver Scherer
e694b63cd1 Don't use ty::Const without immediately interning 2019-05-25 10:07:01 +02:00
Oliver Scherer
8d4f4cdada Reuse the pretty printing architecture for printing of constants 2019-05-25 10:07:01 +02:00
John Kåre Alsaker
ae8975c812 Update GenericPredicates queries 2019-05-23 18:51:46 +02:00
John Kåre Alsaker
b1398a0de6 Update item_children 2019-05-23 18:51:45 +02:00
Vadim Petrochenkov
59a382122f Simplify use of keyword symbols 2019-05-22 19:48:56 +03:00
Nicholas Nethercote
b557567c35 Remove impls for InternedString/string equality.
`Symbol` received the same treatment in #60630.

Also, we can derive `PartialEq` for `InternedString`.
2019-05-21 20:08:33 +10:00
Mazdak Farrokhzad
986aa36ed1 Rollup merge of #60908 - GuillaumeGomez:errors, r=oli-obk
Fix lints handling in rustdoc

Part of #60664: now lints are handled just like any other lints you would setup in rustc. Still remains to handle `missing code examples` and `missing_docs` as part of the same group.

r? @oli-obk
2019-05-20 01:01:41 +02:00
Guillaume Gomez
2caeaf54a1 Fix display of const generics in rustdoc 2019-05-18 15:44:19 +02:00
Guillaume Gomez
b5d4bd2a07 Fix lints handling in rustdoc 2019-05-18 12:45:29 +02:00
Nicholas Nethercote
86cc326d06 Avoid unnecessary interning in Ident::from_str() calls.
A lot of these static symbols are pre-interned.
2019-05-17 20:10:50 +10:00
Nicholas Nethercote
999c1fc281 Remove the equality operation between Symbol and strings.
And also the equality between `Path` and strings, because `Path` is made
up of `Symbol`s.
2019-05-13 09:31:30 +10:00
Nicholas Nethercote
fb084a48e2 Pass a Symbol to check_name, emit_feature_err, and related functions. 2019-05-13 09:29:22 +10:00
varkor
ad78fcf524 Ignore const parameters when constructing type bounds in rustdoc
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-05-06 13:55:28 +01:00
Eduard-Mihai Burtescu
ff174fe09e rustc: rename hir::def::Def to Res (short for "resolution"). 2019-05-03 22:50:19 +03:00
Eduard-Mihai Burtescu
b92b1a76e1 rustc: use DefKind instead of Def, where possible. 2019-05-03 22:50:09 +03:00
Eduard-Mihai Burtescu
a3fcab36d2 rustc: factor most DefId-containing variants out of Def and into DefKind. 2019-05-03 22:48:27 +03:00
bors
6cc24f2603 Auto merge of #60137 - eddyb:rustdoc-rm-def-ctor-hax, r=petrochenkov
rustdoc: remove def_ctor hack.

~~No longer necessary since we have `describe_def`.~~

Turns out `def_ctor` was used in conjunction with abusing `tcx.type_of(def_id)` working on both type definitions and `impl`s (specifically, of builtin types), but also reimplementing a lot of the logic that `Clean` already provides on `Ty` / `ty::TraitRef`.

The first commit now does the minimal refactor to keep it working, while the second commit contains the rest of the refactor I started (parts of which I'm not sure we need to keep).
2019-05-01 12:21:04 +00:00
Mazdak Farrokhzad
6547de2bdd Rollup merge of #60344 - Aaron1011:fix/tower-hyper, r=eddyb
Don't try to render auto-trait bounds with any inference variables

Previously, we checked if the target of a projection type was itself an
inference variable. However, for Rustdoc rendering purposes, there's no
distinction between an inference variable ('_') and a type containing
one (e.g. (MyStruct<u8, _>)) - we don't want to render either of them.

Fixes #60269

Due to the complexity of the original bug, which spans three different
crates (hyper, tower-hyper, and tower), I have been unable to create a
minimized reproduction for the issue.
2019-04-30 16:10:25 +02:00
Eduard-Mihai Burtescu
be9f43e0d4 rustdoc: refactor(?) synthetic impl building. 2019-04-30 13:10:48 +03:00
Eduard-Mihai Burtescu
c835607907 rustdoc: remove def_ctor hack. 2019-04-30 12:55:38 +03:00
flip1995
86ed3116ba Fix lint findings in librustdoc 2019-04-28 21:19:27 +02:00
Aaron Hill
02a40e83b2 Don't try to render auto-trait bounds with any inference variables
Previously, we checked if the target of a projection type was itself an
inference variable. However, for Rustdoc rendering purposes, there's no
distinction between an inference variable ('_') and a type containing
one (e.g. (MyStruct<u8, _>)) - we don't want to render either of them.

Fixes #60269

Due to the complexity of the original bug, which spans three different
crates (hyper, tower-hyper, and tower), I have been unable to create a
minimized reproduction for the issue.
2019-04-27 20:33:03 -04:00
varkor
a3470c6189 Update handling of Tuple 2019-04-26 21:09:32 +01:00
varkor
aa388f1d11 ignore-tidy-filelength on all files with greater than 3000 lines 2019-04-25 21:39:09 +01:00
Mazdak Farrokhzad
62d1574876 Rollup merge of #59823 - davidtwco:issue-54716, r=cramertj
[wg-async-await] Drop `async fn` arguments in async block

Fixes #54716.

This PR modifies the HIR lowering (and some other places to make this work) so that unused arguments to a async function are always dropped inside the async move block and not at the end of the function body.

```
async fn foo(<pattern>: <type>) {
  async move {
  }
} // <-- dropped as you "exit" the fn

// ...becomes...
fn foo(__arg0: <ty>) {
  async move {
    let <pattern>: <ty> = __arg0;
  } // <-- dropped as you "exit" the async block
}
```

However, the exact ordering of drops is not the same as a regular function, [as visible in this playground example](https://play.rust-lang.org/?version=stable&mode=debug&edition=2015&gist=be39af1a58e5d430be1eb3c722cb1ec3) - I believe this to be an unrelated issue. There is a [Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/187312-t-compiler.2Fwg-async-await/topic/.2354716.20drop.20order) for this.

r? @cramertj
cc @nikomatsakis
2019-04-23 21:50:52 +02:00
David Wood
09c707f0ca Display original pattern in rustdoc.
This commit displays the original pattern in generated documentation for
async functions rather than the synthesized pattern.
2019-04-21 16:46:33 +01:00
Vadim Petrochenkov
4eb94b4407 AST/HIR: Use Mutability instead of bool in foreign statics 2019-04-21 15:29:58 +03:00
Vadim Petrochenkov
53ffcd96b7 Remove mutability from Def::Static 2019-04-21 15:05:55 +03:00
Oliver Middleton
1db76c1bff rustdoc: Remove default keyword from re-exported trait methods 2019-04-14 23:55:14 +01:00
Mazdak Farrokhzad
e5435d97ea Rollup merge of #58894 - GuillaumeGomez:invalid-lifetime-bounds, r=estebank
Fix invalid bounds string generation in rustdoc

Fixes #58737.

Very weird and I'm not sure this is the best fix around. However, trying to fix it beforehand seems overly complicated compared to the gain (in `clean`, it wouldn't change anything since we **have to** return something so that wouldn't work, and in `hir`, I'm afraid I'd break something else for very little gain).

Also, I wasn't able to make a small code to reproduce the issue. The only way to test is to document `crossbeam` directly and check the `Scope` struct...

r? @QuietMisdreavus
2019-04-06 00:14:40 +02:00
Guillaume Gomez
ddd034aa6f Fix invalid bounds string generation in rustdoc 2019-03-31 15:32:25 +02:00
Mazdak Farrokhzad
68d03c0917 Rollup merge of #59539 - GuillaumeGomez:rustdoc-infinite-recursion, r=eddyb
Fix infinite recursion

Temporary fix for #59502.

r? @eddyb
2019-03-30 14:14:56 +01:00
Guillaume Gomez
29885ff291 Fix infinite recursion 2019-03-30 11:24:41 +01:00