Commit Graph

285 Commits

Author SHA1 Message Date
Oliver Scherer
3c9258e604 Prefer Default::default over FxHash*::default in struct constructors 2018-10-19 14:34:44 +02:00
Oliver Scherer
ee81739dc1 Deprecate the FxHashMap() and FxHashSet() constructor function hack 2018-10-19 14:34:44 +02:00
QuietMisdreavus
27429d9415 add derive macros' helper attributes to doc output 2018-09-26 13:40:08 -05:00
QuietMisdreavus
f05b744b08 disable proc-macro re-export inlining
Proc-macros don't emit their attributes or source spans across crates.
This means that rustdoc can't actually see the docs of a proc-macro if
it wasn't defined in the active crate, and attempting to inline it
creates an empty page with no docs or source link. In lieu of attempting
to fix that immediately, this commit forces proc-macro re-exports to
never inline, which at least creates usable links to complete
documentation.
2018-09-25 16:15:32 -05:00
QuietMisdreavus
aea1bd0a59 handle proc-macros as macros instead of functions 2018-09-25 14:56:43 -05:00
QuietMisdreavus
354507e61f shuffle ownership of external_traits
constraints:

- clean/inline.rs needs this map to fill in traits when inlining
- fold.rs needs this map to allow passes to fold trait items
- html/render.rs needs this map to seed the Cache.traits map of all
  known traits

The first two are the real problem, since `DocFolder` only operates on
`clean::Crate` but `clean/inline.rs` only sees the `DocContext`. The
introduction of early passes means that these two now exist at the same
time, so they need to share ownership of the map. Even better, the use
of `Crate` in a rustc thread pool means that it needs to be Sync, so it
can't use `Lrc<Lock>` to manually activate thread-safety.

`parking_lot` is reused from elsewhere in the tree to allow use of its
`ReentrantMutex`, as the relevant parts of rustdoc are still
single-threaded and this allows for easier use in that context.
2018-09-20 05:54:26 -05:00
QuietMisdreavus
c754e8240c refactor: move access_levels into RenderInfo 2018-09-20 05:42:38 -05:00
QuietMisdreavus
87760e5f5e collect auto-/blanket-impls during collect-trait-impls 2018-09-20 05:42:37 -05:00
QuietMisdreavus
e79780f18f don't check visibility when inlining local impls
those get handled properly in strip-hidden anyway
2018-09-20 05:42:33 -05:00
QuietMisdreavus
de6a89783c pull impl generics from HIR if available 2018-09-20 05:42:31 -05:00
QuietMisdreavus
fe26efe748 collect impl items from the HIR if available 2018-09-20 05:42:30 -05:00
QuietMisdreavus
978c13aa02 pull local types from the HIR instead of tcx 2018-09-20 05:42:29 -05:00
QuietMisdreavus
bfd2b34454 handle local names when registering FQNs 2018-09-20 05:42:28 -05:00
QuietMisdreavus
a893117f38 add a bunch of debug prints 2018-09-20 05:42:27 -05:00
QuietMisdreavus
50fa16f5b5 undo some tweaks to build_impl 2018-09-20 05:42:26 -05:00
QuietMisdreavus
804a1a6fa9 don't record an external trait if it's not external 2018-09-20 05:42:25 -05:00
QuietMisdreavus
5e0f9be670 print local inlined consts via the HIR map 2018-09-20 05:42:21 -05:00
QuietMisdreavus
02bea3c581 rustdoc: collect trait impls as an early pass 2018-09-20 05:42:20 -05:00
F001
2157958b27 introduce SelfCtor 2018-09-13 12:27:29 +08:00
varkor
d0209c44a6 Replace TyForeign with ForeignTy 2018-08-22 16:08:49 +01:00
varkor
05cfb3f5b5 Rename Def::{Param, Foreign} to Def::{TyParam, TyForeign} 2018-08-22 16:08:49 +01:00
varkor
04fa5d3adb Remove Ty prefix from Ty{Foreign|Param} 2018-08-22 16:07:55 +01:00
Guillaume Gomez
4aba7de2a7 Clean generic impls code 2018-08-04 11:02:00 +02:00
Mark Rousskov
6fdd6f65ca Move unused trait functions to inherent functions 2018-08-03 11:44:09 -06:00
Mark Rousskov
5aec365cb9 Store concrete crate stores where possible 2018-08-03 11:09:49 -06:00
Guillaume Gomez
7a3c7b2097 Don't display full blanket implementation and put it into its own section 2018-07-28 15:18:38 +02:00
Guillaume Gomez
2bc7c03af6 Add filter over non generic impls 2018-07-22 21:02:24 +02:00
Guillaume Gomez
e8cca55283 Working generic impl 2018-07-22 21:02:23 +02:00
QuietMisdreavus
a9a6952fd0 don't panic when you see proc-macros 2018-07-13 17:34:58 -05:00
bors
4af9132a02 Auto merge of #51611 - QuietMisdreavus:slippery-macros, r=ollie27
rustdoc: import cross-crate macros alongside everything else

The thrilling conclusion of the cross-crate macro saga in rustdoc! After https://github.com/rust-lang/rust/pull/51425 made sure we saw all the namespaces of an import (and prevented us from losing the `vec!` macro in std's documentation), here is the PR to handle cross-crate macro re-exports at the same time as everything else. This way, attributes like `#[doc(hidden)]` and `#[doc(no_inline)]` can be used to control how the documentation for these macros is seen, rather than rustdoc inlining every macro every time.

Fixes https://github.com/rust-lang/rust/issues/50647
2018-07-04 18:15:14 +00:00
Vadim Petrochenkov
f0622dfe5d Use Idents for associated item definitions in HIR
Remove emulation of hygiene with gensyms
2018-06-28 11:04:50 +03:00
Taylor Cramer
a62c4aa03a Fix rustdoc and remove default impl for FnHeader 2018-06-22 17:27:58 -07:00
Without Boats
18ff7d091a Parse async fn header.
This is gated on edition 2018 & the `async_await` feature gate.

The parser will accept `async fn` and `async unsafe fn` as fn
items. Along the same lines as `const fn`, only `async unsafe fn`
is permitted, not `unsafe async fn`.The parser will not accept
`async` functions as trait methods.

To do a little code clean up, four fields of the function type
struct have been merged into the new `FnHeader` struct: constness,
asyncness, unsafety, and ABI.

Also, a small bug in HIR printing is fixed: it previously printed
`const unsafe fn` as `unsafe const fn`, which is grammatically
incorrect.
2018-06-21 22:29:47 -07:00
QuietMisdreavus
a220321762 use the imported name when rendering an imported macro 2018-06-20 14:01:37 -05:00
varkor
95f1866a4d Make GenericBound explicit 2018-06-20 12:23:46 +01:00
varkor
c5f16e0e18 Rename ParamBound(s) to GenericBound(s) 2018-06-20 12:23:46 +01:00
varkor
80dbe58efc Use ParamBounds in WhereRegionPredicate 2018-06-20 12:23:07 +01:00
varkor
aed530a457 Lift bounds into GenericParam 2018-06-20 12:22:46 +01:00
QuietMisdreavus
d4387b3e4f rustdoc: import cross-crate macros alongside everything else 2018-06-17 14:59:49 -05:00
QuietMisdreavus
042f1df198 process cross-crate glob re-exports 2018-06-15 18:18:14 -05:00
kennytm
98606cfe12 Rollup merge of #51011 - QuietMisdreavus:duplicitous-macros, r=ollie27
rustdoc: hide macro export statements from docs

As mentioned in https://github.com/rust-lang/rust/issues/50647, rustdoc now prints both the import statement and the macro itself when re-exporting macros. This is a stopgap solution to clean up the std docs and get something small backported into beta.

What this does: When rustdoc finds an export statement for a macro, instead of printing the export and bailing, now it will instead hide the export and bail. Until we can solve https://github.com/rust-lang/rust/issues/34843 or have a better way to find the attributes on an export statement when inlining macros, this will at least match the current behavior and clean up the re-export statements from the docs.
2018-05-24 17:34:55 +08:00
QuietMisdreavus
e3d9f19219 rustdoc: hide macro export statements from docs 2018-05-23 16:22:18 -05:00
Guillaume Gomez
564511e58b add auto-impl for primitive type 2018-05-15 21:37:12 +02:00
Guillaume Gomez
3ba7c00f94 Prevent infinite recursion of modules 2018-05-07 12:44:03 +02:00
Simon Sapin
8a374f2827 Add some f32 and f64 inherent methods in libcore
… previously in the unstable core::num::Float trait.

Per https://github.com/rust-lang/rust/issues/32110#issuecomment-379503183,
the `abs`, `signum`, and `powi` methods are *not* included for now
since they rely on LLVM intrinsics and we haven’t determined yet whether
those instrinsics lower to calls to libm functions on any platform.
2018-04-21 09:47:37 +02:00
Simon Sapin
f0705bf033 Replace StrExt with inherent str methods in libcore 2018-04-21 09:47:37 +02:00
Simon Sapin
90f29fbdb1 Replace SliceExt with inherent [T] methods in libcore 2018-04-21 09:45:18 +02:00
Simon Sapin
de8ed6a1d6 Move non-allocating [u8] inherent methods to libcore
Fixes #45803
2018-04-21 09:45:18 +02:00
Wesley Wiser
4a77d35c1e Remove HIR inlining
Fixes #49690
2018-04-19 20:33:18 -04:00
John Kåre Alsaker
b74e97cf42 Replace Rc with Lrc for shared data 2018-03-02 10:48:52 +01:00