From a376f46862cef319ca6bb59b9b571e5e0ae55d8d Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 22 Mar 2013 19:22:12 -0700 Subject: [PATCH] librustc: Stop parsing `[T * N]`. --- src/librustc/middle/lang_items.rs | 2 +- src/libsyntax/parse/obsolete.rs | 5 +++++ src/libsyntax/parse/parser.rs | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs index 9de7b5088f3a..5ead4f3a5278 100644 --- a/src/librustc/middle/lang_items.rs +++ b/src/librustc/middle/lang_items.rs @@ -78,7 +78,7 @@ pub enum LangItem { } pub struct LanguageItems { - items: [ Option * 35 ] + items: [Option, ..35] } pub impl LanguageItems { diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs index 32c8b88aed8b..75a3d9ab2b14 100644 --- a/src/libsyntax/parse/obsolete.rs +++ b/src/libsyntax/parse/obsolete.rs @@ -61,6 +61,7 @@ pub enum ObsoleteSyntax { ObsoletePurity, ObsoleteStaticMethod, ObsoleteConstItem, + ObsoleteFixedLengthVectorType, } impl to_bytes::IterBytes for ObsoleteSyntax { @@ -209,6 +210,10 @@ pub impl Parser { "`const` items are now `static` items; replace `const` with \ `static`" ), + ObsoleteFixedLengthVectorType => ( + "fixed-length vector notation", + "instead of `[T * N]`, write `[T, ..N]`" + ), }; self.report(sp, kind, kind_str, desc); diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 410ea975dd8b..962607ffec42 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -81,7 +81,7 @@ use parse::obsolete::{ObsoleteBareFnType, ObsoleteNewtypeEnum}; use parse::obsolete::{ObsoleteMode, ObsoleteImplicitSelf}; use parse::obsolete::{ObsoleteLifetimeNotation, ObsoleteConstManagedPointer}; use parse::obsolete::{ObsoletePurity, ObsoleteStaticMethod}; -use parse::obsolete::{ObsoleteConstItem}; +use parse::obsolete::{ObsoleteConstItem, ObsoleteFixedLengthVectorType}; use parse::prec::{as_prec, token_to_binop}; use parse::token::{can_begin_expr, is_ident, is_ident_or_path}; use parse::token::{is_plain_ident, INTERPOLATED, special_idents}; @@ -825,7 +825,7 @@ pub impl Parser { fn maybe_parse_fixed_vstore(&self) -> Option<@ast::expr> { if self.eat(&token::BINOP(token::STAR)) { - // XXX: Obsolete; remove after snapshot. + self.obsolete(*self.last_span, ObsoleteFixedLengthVectorType); Some(self.parse_expr()) } else if *self.token == token::COMMA && self.look_ahead(1) == token::DOTDOT {