Jorge Aparicio
210dd611aa
implement the ? operator
...
The `?` postfix operator is sugar equivalent to the try! macro, but is more amenable to chaining:
`File::open("foo")?.metadata()?.is_dir()`.
`?` is accepted on any *expression* that can return a `Result`, e.g. `x()?`, `y!()?`, `{z}?`,
`(w)?`, etc. And binds more tightly than unary operators, e.g. `!x?` is parsed as `!(x?)`.
cc #31436
2016-03-07 14:39:39 -05:00
Alex Burka
5daf13cae3
libsyntax: parse inclusive ranges
2016-02-27 02:01:41 -05:00
Vadim Petrochenkov
9f414a44a7
Split ast::PatKind::Enum into tuple struct and path patterns
2016-02-13 15:51:27 +03:00
Vadim Petrochenkov
14adc9bb63
Rename ast::Pat_ and its variants
2016-02-13 13:49:24 +03:00
Jonas Schievink
c877d61b15
Use more autoderef in libsyntax
2016-02-12 19:28:42 +01:00
Vadim Petrochenkov
77cc5764b9
Remove some unnecessary indirection from AST structures
2016-02-11 23:33:09 +03:00
Oliver 'ker' Schneider
2b816b0d6a
[breaking-change] don't glob export ast::PathListItem_ variants
2016-02-11 12:34:48 +01:00
Oliver 'ker' Schneider
d844bfb196
[breaking-change] don't glob export ast::Visibility variants
2016-02-11 12:34:48 +01:00
Oliver 'ker' Schneider
dfe35da6b8
[breaking-change] don't glob export ast::TraitItemKind variants
2016-02-11 12:34:48 +01:00
Oliver 'ker' Schneider
14e09ad468
[breaking-change] don't glob export ast::MetaItem_
2016-02-11 12:34:48 +01:00
Oliver 'ker' Schneider
019614f03d
[breaking-change] don't glob export ast::Item_ variants
2016-02-11 12:34:48 +01:00
Oliver 'ker' Schneider
0d6ddd1903
[breaking-change] don't glob export ast::ForeignItem_ variants
2016-02-11 12:34:48 +01:00
Oliver Schneider
8290c950a8
[breaking-change] don't pub export ast::Stmt_ variants
2016-02-11 12:34:48 +01:00
Oliver Schneider
05d4cefd63
[breaking-change] don't pub export ast::Ty_ variants
2016-02-11 12:34:48 +01:00
Oliver Schneider
80bf9ae18a
[breaking-change] don't glob export ast::Expr_ variants
2016-02-11 12:34:48 +01:00
Oliver Schneider
1c4d437158
[breaking-change] don't glob export ast::ExplicitSelf_ variants
2016-02-11 12:34:48 +01:00
Oliver Schneider
79fa657abc
[breaking-change] don't glob export ast::Decl_ variants
2016-02-11 12:34:48 +01:00
Oliver Schneider
3b57d40fe5
[breaking-change] don't glob import ast::FunctionRetTy variants
2016-02-11 12:34:48 +01:00
Ms2ger
2359ab0dc9
Stop re-exporting PathParameters's variants.
2015-12-22 17:12:33 +01:00
bors
440ef8b154
Auto merge of #30184 - petrochenkov:ascr, r=nikomatsakis
...
This PR is a rebase of the original PR by @eddyb https://github.com/rust-lang/rust/pull/21836 with some unrebasable parts manually reapplied, feature gate added + type equality restriction added as described below.
This implementation is partial because the type equality restriction is applied to all type ascription expressions and not only those in lvalue contexts. Thus, all difficulties with detection of these contexts and translation of coercions having effect in runtime are avoided.
So, you can't write things with coercions like `let slice = &[1, 2, 3]: &[u8];`. It obviously makes type ascription less useful than it should be, but it's still much more useful than not having type ascription at all.
In particular, things like `let v = something.iter().collect(): Vec<_>;` and `let u = t.into(): U;` work as expected and I'm pretty happy with these improvements alone.
Part of https://github.com/rust-lang/rust/issues/23416
2015-12-19 02:45:15 +00:00
Vadim Petrochenkov
0d298f9904
Deprecate name OwnedSlice and don't use it
2015-12-18 00:52:56 +03:00
Eduard Burtescu
b8157cc67f
Implement type ascription.
2015-12-16 17:12:35 +03:00
Manish Goregaokar
b0b9a556df
Rollup merge of #30388 - DanielJCampbell:macro-ident-spans, r=nrc
...
r? @nrc
2015-12-16 17:46:29 +05:30
Daniel Campbell
2dcd791d46
Generated code spans now point to callsite parameters (where applicable)
2015-12-15 17:41:03 +13:00
Amanieu d'Antras
65707dfc00
Use a struct instead of a tuple for inline asm output operands
2015-12-05 10:11:20 +00:00
Amanieu d'Antras
9d7b113b44
Add proper support for indirect output constraints in inline asm
2015-12-05 08:18:30 +00:00
Marvin Löbel
c56b47ab8c
Some TLC for the MoveMap trait
2015-11-26 21:46:12 +01:00
Marvin Löbel
0608b1d414
Fixed macro expander not folding attributes (though I'm not sure if that is actually neccessary)
2015-11-26 21:46:12 +01:00
Marvin Löbel
f0beba0217
Moved and refactored ThinAttributes
2015-11-26 21:46:12 +01:00
Marvin Löbel
2a8f358de7
Add syntax support for attributes on expressions and all syntax
...
nodes in statement position.
Extended #[cfg] folder to allow removal of statements, and
of expressions in optional positions like expression lists and trailing
block expressions.
Extended lint checker to recognize lint levels on expressions and
locals.
2015-11-26 21:46:12 +01:00
Oliver Schneider
d09220de13
rename ast::ImplItem_::*ImplItem to ast::ImplItemKind::*
2015-11-16 10:35:30 +01:00
Kyle Mayes
8c88308c68
libsyntax: Add more quasiquoting macros
2015-11-11 15:19:01 -05:00
Seo Sanghyeon
791003ad3c
Use deref coercions
2015-11-10 20:16:28 +09:00
Oliver Schneider
fcc7067904
remove Tt prefix from TokenType variants
...
[breaking change]
2015-11-06 14:52:02 +01:00
Vadim Petrochenkov
3468b8d42c
Remove PatWildMulti
2015-10-31 03:44:43 +03:00
Vadim Petrochenkov
e8ddbba2ed
syntax/rustc_front: Simplify VariantData::fields
...
And use VariantData instead of P<VariantData> in Item_ and Variant_
2015-10-25 18:33:51 +03:00
Vadim Petrochenkov
46750d0409
Merge VariantData and VariantData_
2015-10-13 15:19:27 +03:00
Vadim Petrochenkov
40aa09e4c9
Merge struct fields and struct kind
2015-10-13 15:19:25 +03:00
Vadim Petrochenkov
30af54dede
Dict -> Struct, StructDef -> VariantData, def -> data
2015-10-13 15:19:24 +03:00
Vadim Petrochenkov
beda1f88a7
Provide span for visit_struct_def + remove some dead code
2015-10-13 15:19:19 +03:00
Vadim Petrochenkov
877c35e8a2
Remove now redundant NodeId from Variant
2015-10-13 15:19:18 +03:00
Vadim Petrochenkov
495566ee61
Decouple structure kinds from NodeIds
2015-10-13 15:19:17 +03:00
Vadim Petrochenkov
ea47c2b6b3
Unify structures and enum variants in AST
2015-10-13 15:19:15 +03:00
Nick Cameron
ba43c228b5
Some cleanup of no longer used AST things
2015-10-09 11:53:42 +13:00
Eduard Burtescu
f293ea28b4
Remove the deprecated box(PLACE) syntax.
2015-09-24 18:00:08 +03:00
Andrew Paseltiner
85b8b447fa
Replace ast::Mac_ enum with struct
...
Closes #28527 .
2015-09-20 17:15:04 -04:00
Simonas Kazlauskas
f5a99ae7fb
Remove Visibility field from enum variants
...
Followup on #28440
2015-09-17 10:02:59 +03:00
Simonas Kazlauskas
d8074e65b0
Use proper span for break and continue labels
...
Fixes #28109
2015-09-03 03:50:43 +03:00
bors
8856927f64
Auto merge of #27451 - seanmonstar:use-groups-as, r=alexcrichton
...
An implementation of [RFC 1219](https://github.com/rust-lang/rfcs/pull/1219 ).
The RFC is not merged yet, but once merged, this could be.
2015-08-10 20:24:06 +00:00
Sean McArthur
cfcd449c4c
rustc: rename multiple imports in a list
2015-08-08 11:54:15 -07:00