Commit Graph

449 Commits

Author SHA1 Message Date
csmoe 64f61c7888 remove indexed_vec re-export from rustc_data_structures 2019-09-29 16:48:31 +00:00
bors 134004f74d Auto merge of #62661 - arielb1:never-reserve, r=nikomatsakis
reserve `impl<T> From<!> for T`

this is necessary for never-type stabilization.

cc #57012 #35121

I think we wanted a crater run for this @nikomatsakis?

r? @nikomatsakis
2019-09-26 08:42:34 +00:00
Mazdak Farrokhzad 34067ee961
Rollup merge of #64599 - csmoe:doc_async_reexport, r=nikomatsakis
Rustdoc render async function re-export

Closes #63710
r? @nikomatsakis
2019-09-25 03:48:27 +02:00
Ariel Ben-Yehuda 1ec7ae14fa resolve the rustc_reservation_impl attribute in 1 place 2019-09-24 21:11:50 +03:00
csmoe a744fd0432 bug-out asyncness query on non-local funtions 2019-09-24 06:17:54 +00:00
csmoe a813cc1bf1 rename is_async_fn to asyncness 2019-09-21 03:17:57 +00:00
csmoe 2fd4c27c32 add is_async_fn query 2019-09-19 03:17:34 +00:00
Aaron Hill 3daa8bd2e4
Generate proc macro harness in AST order.
This ensures that we match the order used by proc macro metadata
serialization.

Fixes #64251
2019-09-17 19:10:10 -04:00
Oliver Scherer 26e9990198 Add a "diagnostic item" scheme
This allows lints and other diagnostics to refer to items
by a unique ID instead of relying on whacky path
resolution schemes that may break when items are
relocated.
2019-08-30 01:00:55 +02:00
Mazdak Farrokhzad e4e6b01ca1
Rollup merge of #63867 - petrochenkov:dhelpers, r=matthewjasper
resolve: Block expansion of a derive container until all its derives are resolved

So, it turns out there's one more reason to block expansion of a `#[derive]` container until all the derives inside it are resolved, beside `Copy` (https://github.com/rust-lang/rust/pull/63248).

The set of derive helper attributes registered by derives in the container also has to be known before the derives themselves are expanded, otherwise it may be too late (see https://github.com/rust-lang/rust/pull/63468#issuecomment-524550872 and the `#[stable_hasher]`-related test failures in https://github.com/rust-lang/rust/pull/63468).

So, we stop our attempts to unblock the container earlier, as soon as the `Copy` status is known, and just block until all its derives are resolved.
After all the derives are resolved we immediately go and process their helper attributes in the item, without delaying it until expansion of the individual derives.

Unblocks https://github.com/rust-lang/rust/pull/63468
r? @matthewjasper (as a reviewer of https://github.com/rust-lang/rust/pull/63248)
cc @c410-f3r
2019-08-29 13:17:52 +02:00
Mazdak Farrokhzad b6df8276f8
Rollup merge of #63933 - wesleywiser:cleanup_from_move_promoted, r=oli-obk
Resolve some small issues related to #63580

This resolves some feedback left on #63580 after it was merged:

- Adds documentation to `mir::Static` and `mir::StaticKind`
- Simplifies `maybe_get_optimized_mir()` and `maybe_get_promoted_mir()`

cc @bjorn3 @RalfJung
2019-08-29 05:32:45 +02:00
Wesley Wiser 009cce88eb Extract `Decoder::entry_unless_proc_macro()` 2019-08-28 07:00:27 -04:00
Wesley Wiser 30b29ab0f7 Simplify `maybe_get_optimized_mir` and `maybe_get_promoted_mir`
Since both functions are always unwrapped, don't wrap the return value
in an `Option`.
2019-08-28 07:00:27 -04:00
bors bbd48e6f16 Auto merge of #63127 - kper:pr, r=nikomatsakis
Cleanup: Consistently use `Param` instead of `Arg` #62426

Fixes #62426
2019-08-28 03:42:00 +00:00
Kevin Per e0ce9f8c0a Cleanup: Consistently use `Param` instead of `Arg` #62426 2019-08-27 14:07:41 +02:00
Vadim Petrochenkov 2065ee9acc metadata: Eliminate `FullProcMacro`
Fix caching of loaded proc macros
2019-08-27 01:34:07 +03:00
Vadim Petrochenkov 52c62eaae4 Respect attributes on proc macro definitions 2019-08-27 01:33:13 +03:00
Vadim Petrochenkov ec45b87957 resolve: Block expansion of a derive container until all its derives are resolved
Also mark derive helpers as known as a part of the derive container's expansion instead of expansion of the derives themselves which may happen too late.
2019-08-27 00:31:55 +03:00
Wesley Wiser e63b992030 Resolve PR comments 2019-08-22 06:36:31 -04:00
Wesley Wiser 34fe28bc67 Fix tidy 2019-08-22 06:36:31 -04:00
Wesley Wiser 73814654b2 Move promoted out of mir::Body 2019-08-22 06:36:30 -04:00
Eduard-Mihai Burtescu e7ceaa9748 rustc_metadata: replace LazySeq<T> with Lazy<[T]>. 2019-08-20 18:36:05 +03:00
bors 71e2882973 Auto merge of #63269 - Aaron1011:feature/proc-macro-data, r=eddyb,petrochenkov
Serialize additional data for procedural macros

Split off from #62855

This PR serializes the declaration `Span` and attributes for all
procedural macros. This allows Rustdoc to properly render doc comments
and source links when performing inlinig procedural macros across crates
2019-08-18 08:15:38 +00:00
Aaron Hill 64f867ae3e
Serialize additional data for procedural macros
Split off from #62855

This PR deerializes the declaration `Span` and attributes for all
procedural macros from their underlying function definitions.
This allows Rustdoc to properly render doc comments
and source links when inlining procedural macros across crates
2019-08-17 13:14:05 -04:00
Matthew Jasper 1c0a5469ed Remove unused `SyntaxContext` serialization impls
The implementations were wrong and unused.
2019-08-17 09:12:32 +01:00
Matthew Jasper 497b502062 Stop emulating cross-crate hygiene with gensyms
Most `Ident`s are serialized as `InternedString`s the exceptions are:

* Reexports
* Attributes
* Idents in macro definitions

Using gensyms helped reexports emulate hygiene. However, the actual item
wouldn't have a gensymmed name so would be usable cross-crate. So
removing this case until we have proper cross-crate hygiene seems
sensible.

Codegen attributes (`inline`, `export_name`) are resolved by their
`Symbol`. This meant that opaque macro-expanded codegen attributes could
cause linker errors. This prevented making built-in derives hygienic.
2019-08-17 08:59:36 +01:00
Vadim Petrochenkov 6cb28b6617 `Ident::with_empty_ctxt` -> `Ident::with_dummy_span`
`Ident` has had a full span rather than just a `SyntaxContext` for a long time now.
2019-08-15 20:39:26 +03:00
Vadim Petrochenkov 67d6ce4206 syntax_pos: `NO_EXPANSION`/`SyntaxContext::empty()` -> `SyntaxContext::root()`
For consistency with `ExpnId::root`.

Also introduce a helper `Span::with_root_ctxt` for creating spans with `SyntaxContext::root()` context
2019-08-15 20:38:12 +03:00
Mazdak Farrokhzad 15b5aacab6
Rollup merge of #63146 - Mark-Simulacrum:clean-attr, r=petrochenkov
Cleanup syntax::attr

Mostly removing needless arguments to constructors

r? @petrochenkov
2019-08-03 13:11:59 +02:00
varkor c28ce3e4ca Replace "existential" by "opaque" 2019-08-02 02:44:36 +01:00
Mark Rousskov c146344e32 Decode AttrId via mk_attr_id 2019-07-31 08:55:37 -04:00
Vadim Petrochenkov 31e10aec83 libsyntax: Remove `Mark` into `ExpnId` 2019-07-19 12:01:48 +03:00
Mazdak Farrokhzad d51002ce07
Rollup merge of #61898 - petrochenkov:sekind, r=eddyb
syntax: Factor out common fields from `SyntaxExtension` variants

And some other related cleanups.

Continuation of https://github.com/rust-lang/rust/pull/61606.
This will also help to unblock https://github.com/rust-lang/rust/pull/61877.
2019-06-19 01:52:10 +02:00
Eduard-Mihai Burtescu 4c4fc7512e rustc: reintroduce lifetime bounds where necessary. 2019-06-18 18:10:26 +03:00
Eduard-Mihai Burtescu b25b466a88 rustc: remove 'x: 'y bounds (except from comments/strings). 2019-06-18 18:10:21 +03:00
Vadim Petrochenkov 961ba8f9ef syntax: Factor out common fields from `SyntaxExtension` variants 2019-06-18 10:48:56 +03:00
Eduard-Mihai Burtescu afc39bbf24 Run `rustfmt --file-lines ...` for changes from previous commits. 2019-06-14 18:58:32 +03:00
Eduard-Mihai Burtescu f3f9d6dfd9 Unify all uses of 'gcx and 'tcx. 2019-06-14 18:58:23 +03:00
Eduard-Mihai Burtescu fff08cb043 Run `rustfmt --file-lines ...` for changes from previous commits. 2019-06-12 13:38:28 +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 37799a5552 rustc: replace `TyCtxt<'a, 'gcx, 'tcx>` with `TyCtxt<'tcx, 'gcx, 'tcx>`. 2019-06-12 13:38:27 +03:00
Matthew Jasper 0d75ab2293 Make constructors actually be const functions 2019-06-06 17:20:06 +01:00
Claude-Alban RANÉLY-VERGÉ-DÉPRÉ 6e5e0daff2 Changes the type `mir::Mir` into `mir::Body`
The commit should have changed comments as well.
At the time of writting, it passes the tidy and check tool.

Revisions asked by eddyb :
- Renamed of all the occurences of {visit/super}_mir
- Renamed test structures `CachedMir` to `Cached`

Fixing the missing import on `AggregateKind`
2019-05-28 19:17:51 +02: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
John Kåre Alsaker a58999c19e Update dylib_dependency_formats, extern_crate and reachable_non_generics 2019-05-23 18:51:52 +02:00
John Kåre Alsaker 469831f4da Update foreign_modules and dllimport_foreign_items 2019-05-23 18:51:51 +02:00
John Kåre Alsaker 3f87975d65 Update get_lib_features, defined_lib_features, get_lang_items, defined_lang_items, missing_lang_items, postorder_cnums and maybe_unused_extern_crates 2019-05-23 18:51:51 +02:00
John Kåre Alsaker 093940ddc4 Update implementations_of_trait and all_trait_implementations 2019-05-23 18:51:43 +02:00
John Kåre Alsaker 8c936e422f Update inherent_impls 2019-05-23 18:51:42 +02:00
Eduard-Mihai Burtescu 7327768a75 rustc_metadata: rip out unused incremental infrastructure. 2019-05-22 12:16:48 +03:00