diff options
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) => { |
