diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2014-06-06 10:27:49 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-06-11 15:02:17 -0700 |
| commit | 3316b1eb7c3eb520896af489dd45c4d17190d0a8 (patch) | |
| tree | c94cde854a882cad33d8ec7fe0067b43b5cb96d7 /src/libsyntax/parse | |
| parent | f9260d41d6e37653bf71b08a041be0310098716a (diff) | |
| download | rust-3316b1eb7c3eb520896af489dd45c4d17190d0a8.tar.gz rust-3316b1eb7c3eb520896af489dd45c4d17190d0a8.zip | |
rustc: Remove ~[T] from the language
The following features have been removed * box [a, b, c] * ~[a, b, c] * box [a, ..N] * ~[a, ..N] * ~[T] (as a type) * deprecated_owned_vector lint All users of ~[T] should move to using Vec<T> instead.
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/obsolete.rs | 5 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 13 |
2 files changed, 12 insertions, 6 deletions
diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs index 9706176ca8b..e280c244929 100644 --- a/src/libsyntax/parse/obsolete.rs +++ b/src/libsyntax/parse/obsolete.rs @@ -30,6 +30,7 @@ pub enum ObsoleteSyntax { ObsoleteOwnedType, ObsoleteOwnedExpr, ObsoleteOwnedPattern, + ObsoleteOwnedVector, } pub trait ParserObsoleteMethods { @@ -63,6 +64,10 @@ impl<'a> ParserObsoleteMethods for parser::Parser<'a> { "`~` notation for owned pointer patterns", "use the `box` operator instead of `~`" ), + ObsoleteOwnedVector => ( + "`~[T]` is no longer a type", + "use the `Vec` type instead" + ), }; self.report(sp, kind, kind_str, desc); diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 8083bf41706..4d9b112cb5c 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -1315,11 +1315,8 @@ impl<'a> Parser<'a> { // OWNED POINTER self.bump(); match self.token { - token::IDENT(ref ident, _) - if "str" == token::get_ident(*ident).get() => { - // This is OK (for now). - } - token::LBRACKET => {} // Also OK. + token::LBRACKET => + self.obsolete(self.last_span, ObsoleteOwnedVector), _ => self.obsolete(self.last_span, ObsoleteOwnedType), }; TyUniq(self.parse_ty(false)) @@ -2342,7 +2339,10 @@ impl<'a> Parser<'a> { hi = e.span.hi; // HACK: turn ~[...] into a ~-vec ex = match e.node { - ExprVec(..) | ExprRepeat(..) => ExprVstore(e, ExprVstoreUniq), + ExprVec(..) | ExprRepeat(..) => { + self.obsolete(self.last_span, ObsoleteOwnedVector); + ExprVstore(e, ExprVstoreUniq) + } ExprLit(lit) if lit_is_str(lit) => { self.obsolete(self.last_span, ObsoleteOwnedExpr); ExprVstore(e, ExprVstoreUniq) @@ -2375,6 +2375,7 @@ impl<'a> Parser<'a> { // HACK: turn `box [...]` into a boxed-vec ex = match subexpression.node { ExprVec(..) | ExprRepeat(..) => { + self.obsolete(self.last_span, ObsoleteOwnedVector); ExprVstore(subexpression, ExprVstoreUniq) } ExprLit(lit) if lit_is_str(lit) => { |
