Commit Graph

103320 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
cf937fa84d
Rollup merge of #66935 - petrochenkov:attrtok2, r=Centril
syntax: Unify macro and attribute arguments in AST

The unified form (`ast::MacArgs`) represents parsed arguments instead of an unstructured token stream that was previously used for attributes.
It also tracks some spans and delimiter kinds better for fn-like macros and macro definitions.

I've been talking about implementing this with @nnethercote in https://github.com/rust-lang/rust/pull/65750#issuecomment-546517322.
The parsed representation is closer to `MetaItem` and requires less token juggling during conversions, so it potentially may be faster.

r? @Centril
2019-12-03 11:07:05 +01:00
Mazdak Farrokhzad
01345d65c1
Rollup merge of #66904 - DevinR528:keyword-doc, r=Dylan-DPC
Adding docs for keyword match, move

Partial fix of issue #34601.
2019-12-03 11:07:04 +01:00
Mazdak Farrokhzad
8dacfc2ada
Rollup merge of #66651 - Areredify:on-unimplemented-scope, r=davidtwco
Add `enclosing scope` parameter to `rustc_on_unimplemented`

Adds a new parameter to `#[rustc_on_unimplemented]`, `enclosing scope`, which highlights the function or closure scope with a message.

The wip part refers to adding this annotation to `Try` trait to improve ergonomics (which I don't know how to do since I change both std and librustc)

Closes #61709.
2019-12-03 11:07:01 +01:00
Mazdak Farrokhzad
3045d22263
Rollup merge of #66148 - oli-obk:it_must_be_a_sign, r=RalfJung
Show the sign for signed ops on `exact_div`

r? @RalfJung Cc https://github.com/rust-lang/miri/pull/961/files#r341842128

I'm fairly unhappy with the duplication and the general effort required for this.

Maybe it would be better to add a `display` impl for `ImmTy`?
2019-12-03 11:06:57 +01:00
bors
4787e97475 Auto merge of #66256 - CAD97:patch-2, r=RalfJung
Layout::pad_to_align is infallible

As per [this comment](https://github.com/rust-lang/rust/issues/55724#issuecomment-441421651) (cc @glandium).

> Per https://github.com/rust-lang/rust/blob/eb981a1/src/libcore/alloc.rs#L63-L65, `layout.size()` is always <= `usize::MAX - (layout.align() - 1)`.
>
> Which means:
>
> * The maximum value `layout.size()` can have is already aligned for `layout.align()` (`layout.align()` being a power of two, `usize::MAX - (layout.align() - 1)` is a multiple of `layout.align()`)
> * Incidentally, any value smaller than that maximum value will align at most to that maximum value.
>
> IOW, `pad_to_align` can not return `Err(LayoutErr)`, except for the layout not respecting its invariants, but we shouldn't care about that.

This PR makes `pad_to_align` return `Layout` directly, representing the fact that it cannot fail.
2019-12-03 01:50:33 +00:00
Vadim Petrochenkov
498737c8e9 Address review comments 2019-12-02 22:13:13 +03:00
Vadim Petrochenkov
cf71538094 syntax: Optimize conversion AttrItem -> MetaItem by avoiding outer_tokens. 2019-12-02 21:56:34 +03:00
Vadim Petrochenkov
537895535d syntax: Use ast::MacArgs for macro definitions 2019-12-02 21:56:34 +03:00
Vadim Petrochenkov
1a496f3379 syntax: Use ast::MacArgs for attributes 2019-12-02 21:56:34 +03:00
Vadim Petrochenkov
0fac56717a syntax: Remove redundant span from ast::Mac
Also remove a couple of redundant `visit_mac` asserts
2019-12-02 21:56:34 +03:00
Vadim Petrochenkov
a81804b4d5 syntax: Introduce a struct MacArgs for macro arguments 2019-12-02 21:56:34 +03:00
bors
fdc0011561 Auto merge of #64736 - Nashenas88:mir_predecessors_cache_cleanup, r=oli-obk
Remove interior mutability in mir predecessors cache
2019-12-02 14:51:02 +00:00
Paul Daniel Faria
3eaad564d2 Fix issues caused during rebasing 2019-12-02 09:40:03 -05:00
Paul Daniel Faria
6123478f2a Fix issues caused during rebasing 2019-12-02 08:43:01 -05:00
Paul Daniel Faria
38bd3a2342 Use new HashStable proc macro 2019-12-02 08:43:01 -05:00
Paul Daniel Faria
acb90eb014 Fix tidy issues 2019-12-02 08:43:01 -05:00
Paul Daniel Faria
9978574c9e Fix rebasing errors, convert some BodyCache::body() calls to reborrows 2019-12-02 08:43:01 -05:00
Paul Daniel Faria
64654ce1f1 Fix type errors created during rebasing 2019-12-02 08:42:24 -05:00
Paul Daniel Faria
598797c6e7 Remove unchecked inline attribute, remove unused functions, make chache mod private again 2019-12-02 08:41:30 -05:00
Paul Daniel Faria
c6354e9839 Remove inline attributes that hadn't been profiled, unexport Cache since it no longer needs to be public 2019-12-02 08:41:30 -05:00
Paul Daniel Faria
245abc49be Fix type errors cause during rebasing 2019-12-02 08:41:30 -05:00
Paul Daniel Faria
05dc5e9f47 Compute predecessors in mir_build query and use existing cache for generating ReadOnlyBodyCache, remove unneeded fns 2019-12-02 08:41:30 -05:00
Paul Daniel Faria
ed90818ac8 Remove files created during conflict resolution 2019-12-02 08:40:56 -05:00
Paul Daniel Faria
51b06656da Fix typos caused during rebase 2019-12-02 08:40:56 -05:00
Paul Daniel Faria
b2fe254c98 Remove HasLocalDecls impl from BodyCache's, properly reborrow to Body, rename all body_cache back to body 2019-12-02 08:40:56 -05:00
Paul Daniel Faria
595d161d36 Remove BodyCache.body and rely on Deref as much as possible for ReadOnlyBodyCache 2019-12-02 08:38:16 -05:00
Paul Daniel Faria
c42bdb8c74 Undo minor changes that weren't needed, fix one lifetime typo 2019-12-02 08:38:16 -05:00
Paul Daniel Faria
e54c610f85 Fix compilation errors created during rebase 2019-12-02 08:38:16 -05:00
Paul Daniel Faria
ab657e3b6b Fix typo 2019-12-02 08:38:16 -05:00
Paul Daniel Faria
67b7a78231 Fix tidy errors 2019-12-02 08:38:16 -05:00
Paul Daniel Faria
35590b5cc8 Fix typos caused during rebase 2019-12-02 08:37:23 -05:00
Paul Daniel Faria
4de31b26d1 Fix remaining compilation issues 2019-12-02 08:37:04 -05:00
Paul Daniel Faria
fc6b58d0a8 Simplify BodyCache impl and fix all remaining type errors in librustc_mir (lifetime errors still exist) 2019-12-02 08:35:08 -05:00
Paul Daniel Faria
38c0887c76 Fix remaining Body -> (ReadOnly)BodyCache type errors in librustc_mir outside of librustc_mir/transform 2019-12-02 08:31:35 -05:00
Paul Daniel Faria
3642a71da2 Fix typo caused by rebasing 2019-12-02 08:31:35 -05:00
Paul Daniel Faria
0a19371243 Add predecessors fn to ReadOnlyBodyCache, fix more Body -> (ReadOnly)BodyCache type errors 2019-12-02 08:31:35 -05:00
Paul Daniel Faria
26f1c01ff7 Add read_only fn to BodyCache<&mut...> impl, fix more Body -> (ReadOnly)BodyCache type errors 2019-12-02 08:31:35 -05:00
Paul Daniel Faria
ab98c595ea Fix a large number of Body -> (ReadOnly)BodyCache type errors, add predecessor_locations fn to ReadOnlyBodyCache 2019-12-02 08:31:35 -05:00
Paul Daniel Faria
2eed90a621 Account for new maybe_sideeffect helper that requires predecessors 2019-12-02 08:30:30 -05:00
Paul Daniel Faria
c8c266a0fb Convert &mut to & since the reference didn't need to be mutable 2019-12-02 08:30:30 -05:00
Paul Daniel Faria
66279d12f9 Revert back to using FunctionCx's Body 2019-12-02 08:30:30 -05:00
Paul Daniel Faria
16952cce01 Add Body back as field of FunctionCx, but under a different lifetime 2019-12-02 08:30:30 -05:00
Paul Daniel Faria
3d68f5f3e7 Improved BodyCache body impl so it only returns a sharable ref, add new body_mut method, fix visit macros, simplify usage in codegen_ssa analyzer 2019-12-02 08:30:30 -05:00
Paul Daniel Faria
30b1d9e798 Remove Body from FunctionCx, pass it along during librustc_codegen_ssa 2019-12-02 08:30:30 -05:00
Paul Daniel Faria
649c73f96d Simplify Cache wrapper to single type, impl Deref on it, fix all compilation errors in librustc_codegen_ssa 2019-12-02 08:30:30 -05:00
Paul Daniel Faria
c0592faa67 Move predecessor cache outside of Body, use wrapper types to manage Cache and Body (WIP, amend this commit) 2019-12-02 08:30:30 -05:00
Paul Daniel Faria
9b335ce1a6 Move predecessors cache back to its own type
This ensures that the cache can be properly ignored during encoding and decoding.
Fix panics that arose due to lack of encoding
2019-12-02 08:30:30 -05:00
Paul Daniel Faria
22bc8a01c1 Add back cache invalidation to basic_blocks_and_local_decls_mut 2019-12-02 08:30:30 -05:00
Paul Daniel Faria
52cc85f008 Address nits and remove unneeded pass 2019-12-02 08:30:30 -05:00
Paul Daniel Faria
94414ac7bb Address excessive line length that was triggering warning during linting 2019-12-02 08:30:30 -05:00