Commit graph

509 commits

Author SHA1 Message Date
bors
fc8765d6d8 Auto merge of #61708 - dlrobertson:or-patterns-0, r=centril
Initial implementation of or-patterns

An incomplete implementation of or-patterns (e.g. `Some(0 | 1)` as a pattern). This patch set aims to implement initial parsing of `or-patterns`.

Related to: #54883

CC @alexreg @varkor
r? @Centril
2019-08-18 01:02:20 +00:00
Dan Robertson
1870537f27
initial implementation of or-pattern parsing
Initial implementation of parsing or-patterns e.g., `Some(Foo | Bar)`.
This is a partial implementation of RFC 2535.
2019-08-17 15:55:40 +00:00
varkor
1713ac4bf5
Initial implementation of or patterns 2019-08-17 15:05:36 +00:00
Matthew Jasper
d04af194fc Remove SyntaxContext from {ast, hir}::{GlobalAsm, InlineAsm}
We now store it in the `Span` of the expression or item.
2019-08-17 09:12:32 +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
a6182711ef Remove Spanned from {ast,hir}::FieldPat 2019-08-15 12:31:50 +03:00
Mazdak Farrokhzad
ad44d42750
Rollup merge of #63543 - c410-f3r:variant, r=c410-f3r
Merge Variant and Variant_

Extracted from #63468.
2019-08-14 22:56:29 +02:00
Caio
6a42b0b28d Merge Variant and Variant_ 2019-08-14 14:47:01 -03:00
Esteban Küber
806476c840 Suggest giving return type to closures on E0282 2019-08-13 16:41:43 -07:00
Alexander Regueiro
8f9ca24f55 A few cosmetic improvements. 2019-08-05 15:16:27 +01:00
varkor
63659ca9f6 Rename ItemImplKind::Type to ItemImplKind::TyAlias 2019-08-04 20:16:41 +01:00
varkor
8aa45c65d8 Rename ItemKind::Ty to ItemKind::TyAlias 2019-08-04 20:13:37 +01:00
varkor
b049221844 Address review comments 2019-08-02 02:44:36 +01:00
varkor
16033d1e58 Rename OpaqueTyOrigin variants 2019-08-02 02:44:36 +01:00
varkor
b4fe555796 Replace exist_ty and ExistTy with opaque_ty and OpaqueTy 2019-08-02 02:44:36 +01:00
varkor
c28ce3e4ca Replace "existential" by "opaque" 2019-08-02 02:44:36 +01:00
Mazdak Farrokhzad
a4cd2ecab2
Rollup merge of #61856 - c410-f3r:attrs-fn, r=matthewjasper
Lint attributes on function arguments

Fixes #61238.

cc #60406
2019-07-28 21:19:50 +02:00
Caio
53fc7fbc96 Lint attributes on function arguments 2019-07-27 07:16:21 -03:00
Vadim Petrochenkov
614037171b cleanup: Remove extern crate serialize as rustc_serializes 2019-07-23 19:20:16 +03:00
Vadim Petrochenkov
290475e837 Collect library features from non-exported macros 2019-07-07 13:04:07 +03:00
Mazdak Farrokhzad
f8b32dfb27 Remove ExprKind::While from HIR. 2019-07-06 06:43:58 +02:00
Eduard-Mihai Burtescu
c6374cfbe2 rustc: use a separate copy of P for HIR than for AST. 2019-07-01 14:34:34 +03:00
Eduard-Mihai Burtescu
7e5f6c7f83 rustc: always keep hir::Path behind a P<...>. 2019-07-01 13:39:37 +03:00
Nathan Corbyn
5cb841d72e Don't ICE on item in .await expression 2019-06-26 15:49:10 +01:00
Eduard-Mihai Burtescu
673c3fc23a rustc: disallow cloning HIR nodes. 2019-06-19 21:16:08 +03:00
Eduard-Mihai Burtescu
887feeeaf7 rustc: replace GenericArgs::with_generic_args hack with a plain getter. 2019-06-19 21:16:04 +03:00
bors
e79b2a18a2 Auto merge of #61172 - matthewjasper:cleanup-implied-bounds-lint, r=varkor
Improve the explicit_outlives_requirements lint

* Don't use Strings to compare parameters
* Extend the lint to lifetime bounds
* Extend the lint to enums and unions
* Use the correct span for where clauses in tuple structs
* Try to early-out where possible
* Remove unnecessary bounds in rustc crates
2019-06-19 12:41:38 +00:00
bors
a6cbf2d134 Auto merge of #61945 - Centril:rollup-xdqo2mn, r=Centril
Rollup of 11 pull requests

Successful merges:

 - #61505 (Only show methods that appear in `impl` blocks in the Implementors sections of trait doc pages)
 - #61701 (move stray run-pass const tests into const/ folder)
 - #61748 (Tweak transparent enums and unions diagnostic spans)
 - #61802 (Make MaybeUninit #[repr(transparent)])
 - #61839 (ci: Add a script for generating CPU usage graphs)
 - #61842 (Remove unnecessary lift calls)
 - #61843 (Turn down the myriad-closures test)
 - #61896 (rustc_typeck: correctly compute `Substs` for `Res::SelfCtor`.)
 - #61898 (syntax: Factor out common fields from `SyntaxExtension` variants)
 - #61938 (create an issue for miri even in status test-fail)
 - #61941 (Preserve generator and yield source for error messages)

Failed merges:

r? @ghost
2019-06-19 06:49:13 +00:00
Mazdak Farrokhzad
fde341a4ef
Rollup merge of #61941 - cramertj:no-more-yield-errors, r=centril
Preserve generator and yield source for error messages

Previously, error messages after HIR lowering all referred
to generators and yield, regardless of whether the original
source was a generator or an async/await body. This change
tracks the kind of each generator and yield source in order
to provide appropriately tailored error messages.

Fixes #60615.
2019-06-19 01:52:13 +02:00
Taylor Cramer
d67db0042c Preserve generator and yield source for error messages
Previously, error messages after HIR lowering all referred
to generators and yield, regardless of whether the original
source was a generator or an async/await body. This change
tracks the kind of each generator and yield source in order
to provide appropriately tailored error messages.
2019-06-18 16:22:22 -07:00
Matthew Jasper
63edd2c358 Remove the HirId/NodeId from where clauses
Also give them a span in the HIR
2019-06-18 22:54:51 +01:00
bors
605ea9d05c Auto merge of #59625 - immunant:copy_variadics_typealias, r=eddyb
Refactor C FFI variadics to more closely match their C counterparts, and add Clone implementation

We had to make some changes to expose `va_copy` and `va_end` directly to users (mainly for C2Rust, but not exclusively):
- redefine the Rust variadic structures to more closely correspond to C: `VaList` now matches `va_list`, and `VaListImpl` matches `__va_list_tag`
- add `Clone` for `VaListImpl`
- add explicit `as_va_list()` conversion function from `VaListImpl` to `VaList`
- add deref coercion from `VaList` to `VaListImpl`
- add support for the `asmjs` target

All these changes were needed for use cases like:
```Rust
let mut ap2 = va_copy(ap);
vprintf(fmt, ap2);
va_end(&mut ap2);
```
2019-06-18 21:50:46 +00:00
Andrei Homescu
b9ea653aee Expose VaListImpl as the Rust equivalent of __va_list_tag and implement Clone for it. 2019-06-17 16:04:49 -07:00
ljedrz
72bb5c7067 change NodeId to HirId in some HIR docs 2019-06-17 18:59:27 +02:00
Aaron Kutch
363940bbe1 Change ... to ..= where applicable 2019-06-14 12:24:38 -05:00
Mazdak Farrokhzad
e181139162
Rollup merge of #61570 - varkor:infer-const-arg, r=eddyb
Fix issues with const argument inference

Fixes https://github.com/rust-lang/rust/issues/60724.
Fixes https://github.com/rust-lang/rust/issues/61346.

r? @eddyb
2019-06-10 13:14:29 +02:00
Vadim Petrochenkov
74a6d1c821 Turn #[allocator] into a built-in attribute and rename it to #[rustc_allocator] 2019-06-08 23:55:25 +03:00
varkor
f1867c5497 Rename infer_types to infer_args 2019-06-07 10:18:03 +01:00
Niko Matsakis
f472cd9c02 Addressed points raised in review. 2019-06-05 21:09:27 +01:00
Alexander Regueiro
a71d55701e Addressed points raised in review. 2019-06-05 21:09:27 +01:00
Alexander Regueiro
aaa53ec853 Implemented for traits (associated type definitions). 2019-06-05 21:09:26 +01:00
Alexander Regueiro
35585c499f Aggregation of drive-by cosmetic changes. 2019-06-05 21:09:26 +01:00
David Wood
2bb92aa02f
rustc: remove ArgSource
`ArgSource` is no longer used anywhere, so it can be removed.
2019-06-03 14:02:21 +01:00
David Wood
5e3b41e0cb
rustc: remove HirId from ArgSource::AsyncFn
This commit removes the `HirId` from `ArgSource::AsyncFn`, relying on
the fact that only `simple_ident` is used in each of the locations that
previously took the original pattern from the `ArgSource::AsyncFn`.
2019-06-03 14:02:21 +01:00
David Wood
1e5f496143
rustc: async fn drop order lowering in HIR
This commit re-implements the async fn drop order lowering changes so
that it all takes place in HIR lowering, building atop the work done by
`@eddyb` to refactor `Res::Upvar`.

Previously, this types involved in the lowering were constructed in
libsyntax as they had to be used during name resolution and HIR
lowering. This was awful because none of that logic should have existed
in libsyntax.

This commit also changes `ArgSource` to keep a `HirId` to the original
argument pattern rather than a cloned copy of the pattern.
2019-06-03 10:20:35 +01:00
bors
d461555e44 Auto merge of #61460 - Centril:rollup-8txhjx4, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #61380 (Fix some issues with `unwrap_usize` instead of `assert_usize`)
 - #61423 (codegen: change `$6d$` to `$u6d$`)
 - #61438 (Point at individual type args on arg count mismatch)
 - #61441 (Tweak wording when encountering `fn` call in pattern)
 - #61451 (Fix missing semicolon in doc)
 - #61458 (Fix typo in AsRef doc)

Failed merges:

r? @ghost
2019-06-02 14:42:11 +00:00
Eduard-Mihai Burtescu
f7a4c9d7b5 rustc: collect upvars from HIR, instead of during name resolution. 2019-06-01 20:44:05 +03:00
Esteban Küber
28859472f7 Point at individual type arguments on arg count mismatch 2019-06-01 10:35:31 -07:00
Eduard-Mihai Burtescu
ed1bbbb545 rustc: remove Res::Upvar. 2019-06-01 20:28:48 +03:00
Eduard-Mihai Burtescu
340b91e2ff rustc: remove has_parent from hir::Upvar. 2019-06-01 19:17:23 +03:00