4037 Commits

Author SHA1 Message Date
bors
662c70a59f Auto merge of #48149 - varkor:generics-generalisation, r=petrochenkov
The Great Generics Generalisation: HIR Edition

This is essentially a followup to https://github.com/rust-lang/rust/pull/45930, consolidating the use of separate lifetime and type vectors into single kinds vectors wherever possible. This is intended to provide more of the groundwork for const generics (https://github.com/rust-lang/rust/issues/44580).

r? @eddyb
cc @yodaldevoid
2018-06-21 20:58:51 +00:00
John Kåre Alsaker
c5ecc6fefb Combine all builtin late lints 2018-06-21 18:00:23 +02:00
QuietMisdreavus
a220321762 use the imported name when rendering an imported macro 2018-06-20 14:01:37 -05:00
Bastien Orivel
c863049225 Fix tidy 2018-06-20 19:28:27 +02:00
Bastien Orivel
ae9a27185e Replace tempdir by tempfile in librustdoc 2018-06-20 19:28:27 +02: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
7de6ed06a5 Rename TraitTyParamBound to ParamBound::Trait 2018-06-20 12:23:23 +01:00
varkor
390aa5d421 Introduce ParamName and use it in place of LifetimeName 2018-06-20 12:23:23 +01:00
varkor
c4e8e71880 Lift name into GenericParam 2018-06-20 12:23:08 +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
varkor
a5328bc17b Simply joint lifetime/type iteration 2018-06-20 12:21:52 +01:00
varkor
f457b3d10a Refactor generic parameters in rustdoc/clean 2018-06-20 12:21:52 +01:00
varkor
80b381e041 Remove all traces of lifetimes() and types() methods 2018-06-20 12:21:24 +01:00
varkor
c818a1df9b Remove specific parameter iterators from hir::Generics 2018-06-20 12:21:08 +01:00
varkor
82dba3d419 Refactor hir::GenericParam as a struct 2018-06-20 12:21:07 +01:00
varkor
f9d0968906 Make method and variable names more consistent 2018-06-20 12:19:04 +01:00
varkor
76c0d68745 Rename "parameter" to "arg" 2018-06-20 12:19:04 +01:00
varkor
3e89753283 Rename PathParameter(s) to GenericArg(s) 2018-06-20 12:19:04 +01:00
varkor
1ed60a9173 Rename *Parameter to *Param 2018-06-20 12:19:04 +01:00
Guillaume Gomez
f4ea46a5b3 Extend collision prevention to every type 2018-06-18 21:39:54 +02:00
bors
862703e05e Auto merge of #51414 - oli-obk:impl_trait_type_def, r=pnkfelix
Add existential type definitions

Note: this does not allow creating named existential types, it just desugars `impl Trait` to a less (but still very) hacky version of actual `existential type` items.

r? @nikomatsakis
2018-06-18 14:34:52 +00:00
QuietMisdreavus
d4387b3e4f rustdoc: import cross-crate macros alongside everything else 2018-06-17 14:59:49 -05:00
bors
594b05dd97 Auto merge of #51425 - QuietMisdreavus:thats-def-a-namespace-there, r=petrochenkov
refactor: create multiple HIR items for imports

When lowering `use` statements into HIR, they get a `Def` of the thing they're pointing at. This is great for things that need to know what was just pulled into scope. However, this is a bit misleading, because a `use` statement can pull things from multiple namespaces if their names collide. This is a problem for rustdoc, because if there are a module and a function with the same name (for example) then it will only document the module import, because that's that the lowered `use` statement points to.

The current version of this PR does the following:

* Whenever the resolver comes across a `use` statement, it loads the definitions into a new `import_map` instead of the existing `def_map`. This keeps the resolutions per-namespace so that all the target definitions are available.
* When lowering `use` statements, it looks up the resolutions in the `import_map` and creates multiple `Item`s if there is more than one resolution.
* To ensure the `NodeId`s are properly tracked in the lowered module, they need to be created in the AST, and pulled out as needed if multiple resolutions are available.

Fixes https://github.com/rust-lang/rust/issues/34843
2018-06-17 09:48:10 +00:00
bors
0f8f4903f7 Auto merge of #51382 - GuillaumeGomez:intra-link-lint, r=QuietMisdreavus
Add lint for intra link resolution failure

This PR is almost done, just remains this note:

```
note: requested on the command line with `-W intra-link-resolution-failure`
```

I have no idea why my lint is considered as being passed through command line and wasn't able to find where it was set. If anyone has an idea, it'd be very helpful!

cc @QuietMisdreavus
2018-06-17 02:57:40 +00:00
bors
b2bbb5a9b7 Auto merge of #51584 - QuietMisdreavus:globs-and-crosses, r=ollie27
rustdoc: process cross-crate glob re-exports

Turns out, we were deliberately ignoring glob re-exports when they were occurring across crates, even though we were fully processing them for local re-exports. This will at least bring the two into parity.

Fixes https://github.com/rust-lang/rust/issues/51252
2018-06-16 17:43:24 +00:00
Guillaume Gomez
afeb790ea1 Fix macro missing from doc search 2018-06-16 14:14:18 +02:00
QuietMisdreavus
042f1df198 process cross-crate glob re-exports 2018-06-15 18:18:14 -05:00
Guillaume Gomez
e28502edca Fix search fn keyword 2018-06-15 23:23:25 +02:00
QuietMisdreavus
16cfa5c2ef rustdoc: discard struct ctors from imports 2018-06-14 17:47:35 -05:00
Guillaume Gomez
d2a4e42959 Rename intra-doc lint 2018-06-13 23:30:34 +02:00
Guillaume Gomez
e6c7868fb2 Update help message to escape square brackets 2018-06-13 21:18:56 +02:00
Guillaume Gomez
2e343f384f Add help for intra-link lint 2018-06-13 21:18:55 +02:00
Guillaume Gomez
8c43c93e6d Fix options issues 2018-06-13 21:18:55 +02:00
Guillaume Gomez
de974645e1 Greatly improve tables display in docs 2018-06-13 21:11:08 +02:00
kennytm
ca65a5e485
Don't auto-hide inherent impls even if rustdoc-collapse == true. 2018-06-13 18:00:18 +08:00
Guillaume Gomez
dadfa13f47 Fix extern prelude failure in rustdoc 2018-06-11 22:24:35 +02:00
Guillaume Gomez
b000cf0726 Add lint for intra link resolution failure 2018-06-09 14:07:25 +02:00
Mark Rousskov
32ed5acf98
Rollup merge of #51391 - estebank:docspan, r=GuillaumeGomez
Use spans pointing at the inside of a rustdoc attribute

Follow up to #51111.

Point to the link in a rustdoc attribute where intralink resolution failed, instead of the full rustdoc attribute's span.

r? @GuillaumeGomez cc @kennytm
2018-06-08 17:21:02 -06:00
Oliver Schneider
20f759fdce Fix rustdoc 2018-06-08 11:09:05 +02:00
Esteban Küber
31bb50b6b9 Use from_inner_byte_pos for cleaner code 2018-06-07 09:47:09 -07:00
Oliver Schneider
9b1bd94e37 Add existential type definitons 2018-06-07 17:33:53 +02:00
Esteban Küber
7d0b6b75f0 When unable to sinthesize link span, fallback to previous behavior 2018-06-06 09:38:47 -07:00
Esteban Küber
507dfd2148 Use spans pointing at the inside of a rustdoc attribute 2018-06-06 08:49:42 -07:00
Oliver Middleton
e73941a06b rustdoc: Fix missing stability and src links for inlined external macros 2018-06-06 04:13:55 +01:00
Mark Simulacrum
ac32f8151b
Rollup merge of #51256 - GuillaumeGomez:fix-rustdoc-crate-name, r=QuietMisdreavus
Fix crate-name option in rustdoc

Fixes #51229.

r? @QuietMisdreavus
2018-06-05 08:33:47 -06:00
Guillaume Gomez
3cbcc5a22d Fix crate-name option in rustdoc 2018-06-04 23:05:14 +02:00
Guillaume Gomez
f784d5ead2 Remove useless function call for keyword generation in rustdoc 2018-06-04 09:51:41 +02:00
Guillaume Gomez
904f4921f8 Few improvements 2018-06-04 09:51:41 +02:00