Commit graph

774 commits

Author SHA1 Message Date
Nicholas Nethercote
fb084a48e2 Pass a Symbol to check_name, emit_feature_err, and related functions. 2019-05-13 09:29:22 +10:00
Vadim Petrochenkov
751ae5af1a Introduce hir::Lit not keeping the original token 2019-05-11 14:24:21 +03:00
Vadim Petrochenkov
f2834a403a Keep the original token in ast::Lit 2019-05-11 14:24:21 +03:00
Vadim Petrochenkov
28b125b83d Turn ast::Lit into a struct 2019-05-11 14:24:21 +03:00
Mazdak Farrokhzad
5cccda1770 Remove hir::ExprKind::If and replace it with lowering to hir::ExprKind::Match. 2019-05-10 19:41:10 +02:00
Taylor Cramer
fe8760cb84 Implement built-in await syntax
Adds support for .await under the existing async_await feature gate.
Moves macro-like await! syntax to the await_macro feature gate.
Removes support for `await` as a non-keyword under the `async_await`
feature.
2019-05-07 14:45:53 -07:00
Jesper Steen Møller
6802082039 Hash all of the import_ids for the TraitCandidate. 2019-05-04 20:29:35 +02:00
Jesper Steen Møller
7dbb5e3b49 Use binding autoref, because we can. 2019-05-04 20:29:34 +02:00
Jesper Steen Møller
719890502e Improved name: first_import_id 2019-05-04 20:29:34 +02:00
Jesper Steen Møller
5deec307f7 Fix #45268 by saving all NodeId's for resolved traits. 2019-05-04 20:29:33 +02:00
Taylor Cramer
e617025e96 Add rustc_allow_const_fn_ptr 2019-04-23 15:55:31 -07:00
varkor
7f0f0e31ec Remove double trailing newlines 2019-04-22 16:57:01 +01:00
flip1995
69f74df429
Deny internal lints in librustc 2019-04-03 18:24:21 +02:00
Vadim Petrochenkov
0cf96131f4 Refactor away NestedMetaItemKind
Remove methods `Attribute::span` and `MetaItem::span` duplicating public fields
2019-03-16 23:14:42 +03:00
Vadim Petrochenkov
63116d313d Rename MetaItem::ident to MetaItem::path 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
8371caf5ee syntax: Do not accidentally treat multi-segment meta-items as single-segment 2019-03-16 23:13:15 +03:00
John Kåre Alsaker
3936aff216 Use derive macro for HashStable 2019-03-13 00:03:13 +01:00
John Kåre Alsaker
51938c61f6 Make the rustc driver and interface demand driven 2019-03-10 04:49:45 +01:00
bors
2a65cbeea7 Auto merge of #58915 - ljedrz:deprecate_nodeid_methods, r=Zoxc
HirIdification: almost there

The next iteration of HirIdification (#57578).

Replaces a bunch of `NodeId` method calls (mostly `as_local_node_id`) with `HirId` ones.

Removes `NodeId` from:
- [x] `PathSegment`
- [x] `PatKind`
- [x] `Destination` (replaces it with `HirId`)

In addition this PR also removes `Visitor::visit_def_mention`, which doesn't seem to be doing anything.
2019-03-08 13:49:07 +00:00
bors
0547ceb200 Auto merge of #58013 - Zoxc:stable-hash-macro-simple, r=oli-obk
Create a derive macro for HashStable and allow proc macros in rustc

A combination of https://github.com/rust-lang/rust/pull/56864 and https://github.com/rust-lang/rust/pull/56795. There were complications with using `serde_derive` as rustc doesn't know which crate to use for the host when there is a serde_derive in the sysroot and cargo passes another on the command line built from crates.io.

r? @eddyb (for proc macro changes) @alexcrichton (for rustbuild changes) @michaelwoerister (for the macro itself)
2019-03-08 05:46:08 +00:00
ljedrz
558a07b896 hir: remove NodeId from PatKind 2019-03-07 12:18:59 +01:00
ljedrz
78f91e3976 hir: remove NodeId from PathSegment 2019-03-07 09:25:51 +01:00
varkor
9a9aa5b46a Implement Hash for new types
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:09:31 +00:00
John Kåre Alsaker
97431a4090 Create a derive macro for HashStable 2019-03-05 00:36:20 +01:00
bors
2cfd6444a7 Auto merge of #58673 - matthewjasper:typeck-ptr-coercions, r=pnkfelix
[NLL] Type check operations with pointer types

It seems these were forgotten about. Moving to `Rvalue::AddressOf` simplifies the coercions from references, but I want this to be fixed as soon as possible.

r? @pnkfelix
2019-03-03 16:46:12 +00:00
ljedrz
fa61c67fe6 hir: HirIdify Impl&TraitItemId 2019-03-02 07:48:53 +01:00
ljedrz
fb22315f08 hir: remove NodeId from VariantData 2019-03-02 07:48:52 +01:00
ljedrz
50b8bc8c8c hir: remove NodeId from Pat and FieldPat 2019-03-02 07:48:52 +01:00
ljedrz
77fa041fc1 hir: remove NodeId from Item 2019-03-02 07:48:52 +01:00
ljedrz
3c25193f3f hir: remove NodeId from ForeignItem 2019-03-02 07:48:52 +01:00
ljedrz
ae45f170ee hir: remove NodeId from StructField 2019-03-02 07:48:52 +01:00
bors
c1d2d83ca3 Auto merge of #58754 - ljedrz:I_hate_NodeIds, r=Zoxc
Remove NodeId from more HIR nodes

The next iteration of HirIdification (#57578).

Removes `NodeId` from:

- [x] `Stmt`
- [x] `Local`
- [x] `Field`
- [x] `AnonConst`
- [x] `TraitItem`
- [x] `ImplItem`
- [x] `TypeBinding`
- [x] `Arg`
- [x] `TraitRef`
- [x] `VisibilityKind`

It will most probably break clippy again; I'd appreciate a **delegate** again if/when it is good to go so I can attach a clippy fix later.

r? @Zoxc
2019-03-01 15:36:13 +00:00
ljedrz
9cd1845908 hir: remove NodeId from VisibilityKind 2019-03-01 11:18:50 +01:00
ljedrz
01cf66bb30 hir: remove NodeId from TraitRef 2019-03-01 11:18:50 +01:00
ljedrz
aa6a9c3f41 hir: remove NodeId from Arg 2019-03-01 11:18:49 +01:00
ljedrz
2827f8d4fe hir: remove NodeId from TypeBinding 2019-03-01 11:18:49 +01:00
ljedrz
a29ceb9f51 hir: remove NodeId from ImplItem 2019-03-01 11:18:49 +01:00
ljedrz
e72584c3a1 hir: remove NodeId from TraitItem 2019-03-01 11:18:49 +01:00
ljedrz
4543fc243e hir: remove NodeId from AnonConst 2019-03-01 11:18:48 +01:00
ljedrz
d959f443fb hir: remove NodeId from Field 2019-03-01 11:18:48 +01:00
ljedrz
70d3b290e2 hir: remove NodeId from Local 2019-03-01 11:18:48 +01:00
ljedrz
341b023986 hir: remove NodeId from Stmt 2019-03-01 11:18:47 +01:00
Santiago Pastorino
0f993d5a7a Put Local, Static and Promoted as one Base variant of Place 2019-03-01 05:02:00 +01:00
Dan Robertson
08bd4ff998
Rename variadic to c_variadic
Function signatures with the `variadic` member set are actually
C-variadic functions. Make this a little more explicit by renaming the
`variadic` boolean value, `c_variadic`.
2019-02-27 10:21:54 -05:00
Dan Robertson
58147d486b
Support defining C compatible variadic functions
Add support for defining C compatible variadic functions in unsafe rust
with extern "C".
2019-02-27 10:21:35 -05:00
bors
ea43c3c688 Auto merge of #58561 - ljedrz:HirIdify_some_nodes, r=Zoxc
Remove NodeId from some HIR nodes

The next iteration of https://github.com/rust-lang/rust/pull/57578.

Removes `NodeId` from:

- [x] `Lifetime`
- [x] `Ty`
- [x] `GenericParam`
- [x] `WhereClause`
- [x] `WhereEqPredicate`
- [x] `MacroDef`
- [x] `Block`
- [x] `Expr`

r? @Zoxc
2019-02-26 06:13:27 +00:00
bors
31eb0e2d3c Auto merge of #57609 - matthewjasper:more-restrictive-match, r=pnkfelix
Use normal mutable borrows in matches

`ref mut` borrows are currently two-phase with NLL enabled. This changes them to be proper mutable borrows. To accommodate this, first the position of fake borrows is changed:

```text
[ 1. Pre-match ]
       |
[ (old create fake borrows) ]
[ 2. Discriminant testing -- check discriminants ] <-+
       |                                             |
       | (once a specific arm is chosen)             |
       |                                             |
[ (old read fake borrows) ]                          |
[ 3. Create "guard bindings" for arm ]               |
[ (create fake borrows) ]                            |
       |                                             |
[ 4. Execute guard code ]                            |
[ (read fake borrows) ] --(guard is false)-----------+
       |
       | (guard results in true)
       |
[ 5. Create real bindings and execute arm ]
       |
[ Exit match ]
```

The following additional changes are made to accommodate `ref mut` bindings:

* We no longer create fake `Shared` borrows. These borrows are no longer needed for soundness, just to avoid some arguably strange cases.
* `Shallow` borrows no longer conflict with existing borrows, avoiding conflicting access between the guard borrow access and the `ref mut` borrow.

There is some further clean up done in this PR:

* Avoid the "later used here" note for Shallow borrows (since it's not relevant with the message provided)
* Make any use of a two-phase borrow activate it.
* Simplify the cleanup_post_borrowck passes into a single pass.

cc #56254

r? @nikomatsakis
2019-02-25 06:27:35 +00:00
ljedrz
d7ced1dd5a hir: remove NodeId from Expr 2019-02-24 17:09:37 +01:00
ljedrz
021a140dcd hir: remove NodeId from Block 2019-02-24 17:09:26 +01:00
ljedrz
63b4dd91be hir: remove NodeId from MacroDef 2019-02-24 07:50:46 +01:00