Vadim Petrochenkov
4d1a30c92b
Remove most of PartialEq
impls from AST and HIR structures
2018-07-14 14:56:57 +03:00
ljedrz
e28e4877a8
Deny bare trait objects in in src/libsyntax
2018-07-10 21:06:26 +02:00
Oliver Schneider
b2e2c32105
Generate the NodeId
for existential type
in the AST
2018-06-27 11:17:25 +02:00
Zack M. Davis
3fb76f4027
inclusive range syntax lint (...
→ ..=
)
...
Our implementation ends up changing the `PatKind::Range` variant in the
AST to take a `Spanned<RangeEnd>` instead of just a `RangeEnd`, because
the alternative would be to try to infer the span of the range operator
from the spans of the start and end subexpressions, which is both
hideous and nontrivial to get right (whereas getting the change to the
AST right was a simple game of type tennis).
This is concerning #51043 .
2018-06-26 07:54:49 -07:00
Vadim Petrochenkov
869fa27d13
hygiene: Rename MarkKind
to Transparency
...
Move `is_builtin` for `Mark` to a separate flag
2018-06-23 20:09:21 +03:00
Taylor Cramer
30c17ccbff
Update libsyntax test
2018-06-22 20:40:52 -07:00
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
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
6015edf9af
Remove name from GenericParamKind::Lifetime
2018-06-20 12:23:08 +01:00
varkor
80dbe58efc
Use ParamBounds in WhereRegionPredicate
2018-06-20 12:23:07 +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
e1d888c722
Remove methods from ast::GenericParam and ast::Generics
2018-06-20 12:21:08 +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
bors
1e504d301c
Auto merge of #51072 - petrochenkov:ifield, r=eddyb
...
Use `Ident`s for fields in HIR
Continuation of https://github.com/rust-lang/rust/pull/49718 , part of https://github.com/rust-lang/rust/issues/49300
2018-05-26 16:56:22 +00:00
Vadim Petrochenkov
1e4269cb83
Add Ident::as_str
helper
2018-05-26 15:20:23 +03:00
Niko Matsakis
01d6ed525f
restore emplacement syntax (obsolete)
2018-05-24 18:49:58 -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
Vadim Petrochenkov
c4352ff198
Turn some functions from token.rs
into methods on Ident
2018-05-17 23:13:09 +03:00
bors
0e325d0141
Auto merge of #50045 - est31:label_break_value, r=eddyb
...
Implement label break value (RFC 2046)
Implement label-break-value (#48594 ).
2018-05-16 14:22:17 +00:00
est31
11f5893610
label-break-value: Parsing and AST/HIR changes
2018-05-16 13:56:24 +02:00
Vadim Petrochenkov
c106125431
Represent lifetimes as two joint tokens in proc macros
2018-05-15 23:54:08 +03: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
Shotaro Yamada
39df2231bb
Fix assertion message generation
2018-05-06 12:13:32 +09:00
bors
d68b0eceaa
Auto merge of #50030 - flip1995:rfc2103, r=petrochenkov
...
Implement tool_attributes feature (RFC 2103)
cc #44690
This is currently just a rebased and compiling (hopefully) version of #47773 .
Let's see if travis likes this. I will add the implementation for `tool_lints` this week.
2018-05-03 11:52:03 +00:00
Nicholas Nethercote
7a56360ece
Remove parse::escape_default().
...
str::escape_default() can be used instead.
2018-05-03 10:31:45 +10:00
flip1995
121abd0599
make it compile again
2018-05-02 12:05:13 +02:00
Seiichi Uchida
9b3aea602c
Remove Option from the return type of Attribute::name()
2018-05-02 11:32:34 +02:00
Seiichi Uchida
759bd01e03
Allow Path for name of MetaItem
2018-05-02 11:32:34 +02:00
Irina Popa
04fa0e7bb3
rustc_target: move in syntax::abi and flip dependency.
2018-04-26 17:49:16 +03:00
bors
3dfda16525
Auto merge of #49993 - nnethercote:shrink-Token, r=alexcrichton
...
Change the hashcounts in raw `Lit` variants from usize to u16.
This reduces the size of `Token` from 32 bytes to 24 bytes on 64-bit
platforms.
2018-04-18 14:44:54 +00:00
Vadim Petrochenkov
44acea4d88
AST/HIR: Merge field access expressions for named and numeric fields
2018-04-12 23:02:09 +03:00
Nicholas Nethercote
4d34bfd00a
Change the hashcounts in raw Lit
variants from usize to u16.
...
This reduces the size of `Token` from 32 bytes to 24 bytes on 64-bit
platforms.
2018-04-12 20:12:42 +10:00
Oliver Schneider
679657b863
Inject the compiler_builtins
crate whenever the core
crate is injected
2018-04-07 09:24:35 +02: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
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