syntax: add an obsolete syntax warning for @[].

This commit is contained in:
Huon Wilson 2014-02-01 23:18:45 +11:00
parent f8734df515
commit aadcf29766
2 changed files with 9 additions and 1 deletions
src/libsyntax/parse

@ -45,6 +45,7 @@ pub enum ObsoleteSyntax {
ObsoleteExternModAttributesInParens,
ObsoleteManagedPattern,
ObsoleteManagedString,
ObsoleteManagedVec,
}
impl to_bytes::IterBytes for ObsoleteSyntax {
@ -154,6 +155,10 @@ impl ParserObsoleteMethods for Parser {
"managed string",
"use `Rc<~str>` instead of a managed string"
),
ObsoleteManagedVec => (
"managed vector",
"use `Rc<~[T]>` instead of a managed vector"
),
};
self.report(sp, kind, kind_str, desc);

@ -2294,7 +2294,10 @@ impl Parser {
// HACK: turn @[...] into a @-vec
ex = match e.node {
ExprVec(..) |
ExprRepeat(..) => ExprVstore(e, ExprVstoreBox),
ExprRepeat(..) => {
self.obsolete(e.span, ObsoleteManagedVec);
ExprVstore(e, ExprVstoreBox)
}
ExprLit(lit) if lit_is_str(lit) => {
self.obsolete(self.last_span, ObsoleteManagedString);
ExprVstore(e, ExprVstoreBox)