Taylor Cramer
cf844b547d
async await desugaring and tests
2018-06-21 22:36:36 -07:00
Without Boats
18ff7d091a
Parse async fn header.
...
This is gated on edition 2018 & the `async_await` feature gate.
The parser will accept `async fn` and `async unsafe fn` as fn
items. Along the same lines as `const fn`, only `async unsafe fn`
is permitted, not `unsafe async fn`.The parser will not accept
`async` functions as trait methods.
To do a little code clean up, four fields of the function type
struct have been merged into the new `FnHeader` struct: constness,
asyncness, unsafety, and ABI.
Also, a small bug in HIR printing is fixed: it previously printed
`const unsafe fn` as `unsafe const fn`, which is grammatically
incorrect.
2018-06-21 22:29:47 -07:00
varkor
21136b8ab4
Rename ParenthesizedArgData to ParenthesisedArgs
2018-06-20 12:23:46 +01: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
831b5c02df
Take advantage of the lifetime refactoring
2018-06-20 12:23:08 +01:00
varkor
aed530a457
Lift bounds into GenericParam
2018-06-20 12:22:46 +01:00
varkor
3bcb006fd9
Rename structures in ast
2018-06-20 12:21:52 +01:00
varkor
2c6ff2469a
Refactor ast::GenericParam as a struct
2018-06-20 12:21:08 +01:00
varkor
d643946550
Rename ast::GenericParam and ast::GenericArg
...
It's so confusing to have everything having the same name, at least while refactoring.
2018-06-20 12:19:04 +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
varkor
494859e8dd
Consolidate PathParameters and AngleBracketedParameterData
2018-06-20 12:19:03 +01:00
QuietMisdreavus
122b5b47c2
create multiple HIR items for a use statement
2018-06-14 17:47:28 -05:00
Michael Lamparski
a20c177827
add fold::Folder::fold_qpath
2018-06-12 08:06:22 -04:00
Eduard-Mihai Burtescu
a1433f2f88
syntax: remove overloading of fold_lifetime{,_def}{,s}.
2018-05-30 20:29:38 +03:00
Niko Matsakis
01d6ed525f
restore emplacement syntax (obsolete)
2018-05-24 18:49:58 -04:00
bors
7426f5ccf7
Auto merge of #50971 - alexcrichton:no-stringify, r=petrochenkov
...
rustc: Correctly pretty-print macro delimiters
This commit updates the `Mac_` AST structure to keep track of the delimiters
that it originally had for its invocation. This allows us to faithfully
pretty-print macro invocations not using parentheses (e.g. `vec![...]`). This in
turn helps procedural macros due to #43081 .
Closes #50840
2018-05-24 07:14:21 +00:00
Niko Matsakis
e9e8514ca0
add Span information into Qself
2018-05-22 19:05:42 -04:00
Alex Crichton
a137d00ce5
rustc: Correctly pretty-print macro delimiters
...
This commit updates the `Mac_` AST structure to keep track of the delimiters
that it originally had for its invocation. This allows us to faithfully
pretty-print macro invocations not using parentheses (e.g. `vec![...]`). This in
turn helps procedural macros due to #43081 .
Closes #50840
2018-05-22 11:56:41 -07:00
Eduard-Mihai Burtescu
26aad25487
rustc: introduce {ast,hir}::AnonConst to consolidate so-called "embedded constants".
2018-05-19 20:34:42 +03:00
est31
11f5893610
label-break-value: Parsing and AST/HIR changes
2018-05-16 13:56:24 +02:00
Dan Aloni
37ed2ab910
Macros: Add a 'literal' fragment specifier
...
Implements RFC 1576.
See: https://github.com/rust-lang/rfcs/blob/master/text/1576-macros-literal-matcher.md
Changes are mostly in libsyntax, docs, and tests. Feature gate is
enabled for 1.27.0.
Many thanks to Vadim Petrochenkov for following through code reviews
and suggestions.
Example:
````rust
macro_rules! test_literal {
($l:literal) => {
println!("literal: {}", $l);
};
($e:expr) => {
println!("expr: {}", $e);
};
}
fn main() {
let a = 1;
test_literal!(a);
test_literal!(2);
test_literal!(-3);
}
```
Output:
```
expr: 1
literal: 2
literal: -3
```
2018-05-13 19:17:02 +03:00
Vadim Petrochenkov
44acea4d88
AST/HIR: Merge field access expressions for named and numeric fields
2018-04-12 23:02:09 +03:00
Vadim Petrochenkov
3a30bad6de
Use Ident instead of Name in MetaItem
2018-04-06 11:52:16 +03:00
Vadim Petrochenkov
bfaf4180ae
Make lifetime nonterminals closer to identifier nonterminals
2018-04-06 11:52:16 +03:00
Vadim Petrochenkov
b3b5ef186c
Remove more duplicated spans
2018-04-06 11:50:49 +03:00
Vadim Petrochenkov
62000c072e
Rename ast::Variant_::name into ident + Fix rebase
2018-04-06 11:48:19 +03:00
Vadim Petrochenkov
e2afefd80b
Get rid of SpannedIdent
2018-04-06 11:48:19 +03:00
Vadim Petrochenkov
8719d1ed05
Rename PathSegment::identifier to ident
2018-04-06 11:46:26 +03:00
Alex Crichton
46492ffabd
Rollup merge of #49350 - abonander:macros-in-extern, r=petrochenkov
...
Expand macros in `extern {}` blocks
This permits macro and proc-macro and attribute invocations (the latter only with the `proc_macro` feature of course) in `extern {}` blocks, gated behind a new `macros_in_extern` feature.
A tracking issue is now open at #49476
closes #48747
2018-04-05 10:49:14 -05:00
Austin Bonander
5d74990ceb
expand macro invocations in extern {} blocks
2018-04-03 13:16:11 -07:00
Aidan Hobson Sayers
9b5859aea1
Remove all unstable placement features
...
Closes #22181 , #27779
2018-04-03 11:02:34 +02:00
Lymia Aluysia
fad1648e0f
Initial implementation of RFC 2151, Raw Identifiers
2018-03-18 10:07:19 -05:00
Vadim Petrochenkov
f88162654d
Rename Span::empty to Span::shrink_to_lo, add Span::shrink_to_hi
2018-03-17 22:12:21 +03:00
Vadim Petrochenkov
b057c554ab
AST: Make renames in imports closer to the source
...
Fix `unused_import_braces` lint false positive on `use prefix::{self as rename}`
2018-03-17 22:12:21 +03:00
Vadim Petrochenkov
c6c6cf9515
AST/HIR: Clarify what the optional name in extern crate items mean
2018-03-17 22:12:21 +03:00
John Kåre Alsaker
cbdf4ec03e
Remove syntax and syntax_pos thread locals
2018-03-14 11:56:01 +01:00
John Kåre Alsaker
b74e97cf42
Replace Rc with Lrc for shared data
2018-03-02 10:48:52 +01:00
Vadim Petrochenkov
c9aff92e6d
Support parentheses in patterns under feature gate
...
Improve recovery for trailing comma after `..`
2018-03-01 01:47:56 +03:00
Vadim Petrochenkov
8640a51ff8
Implement multiple patterns with | in if let and while let
2018-02-24 03:12:35 +03:00
Seiichi Uchida
b5099a708d
Replace dummy spans with empty spans
2018-02-18 00:10:40 +09:00
Seiichi Uchida
d6bdf296a4
Change ast::Visibility to Spanned type
2018-02-18 00:10:40 +09:00
Seiichi Uchida
0bddba9248
Add a span field to Visibility::Restricted
...
This span covers the whole visibility expression: e.g. `pub (in path)`.
2018-02-18 00:10:40 +09:00
Jonathan Goodman
a99b5db56a
stabilize match_beginning_vert
2018-01-30 16:00:55 -06:00
Alex Crichton
98b375483c
Rollup merge of #47502 - petrochenkov:label, r=eddyb
...
AST/HIR: Add a separate structure for labels
2018-01-25 12:48:49 -06:00
John Kåre Alsaker
ccf0d8399e
Adds support for immovable generators. Move checking of invalid borrows across suspension points to borrowck. Fixes #44197 , #45259 and #45093 .
2018-01-23 05:10:38 +01:00