Implement slicing syntax.

`expr[]`, `expr[expr..]`, `expr[..expr]`,`expr[expr..expr]`

Uses the Slice and SliceMut traits.

Allows ... as well as .. in range patterns.
This commit is contained in:
Nick Cameron
2014-09-15 20:48:58 +12:00
parent af3889f697
commit 31a7e38759
27 changed files with 909 additions and 105 deletions

View File

@@ -531,6 +531,7 @@ pub enum Expr_ {
ExprField(P<Expr>, SpannedIdent, Vec<P<Ty>>),
ExprTupField(P<Expr>, Spanned<uint>, Vec<P<Ty>>),
ExprIndex(P<Expr>, P<Expr>),
ExprSlice(P<Expr>, Option<P<Expr>>, Option<P<Expr>>, Mutability),
/// Variable reference, possibly containing `::` and/or
/// type parameters, e.g. foo::bar::<baz>