diff options
| author | ljedrz <ljedrz@gmail.com> | 2018-08-30 11:42:16 +0200 |
|---|---|---|
| committer | ljedrz <ljedrz@gmail.com> | 2018-09-26 10:43:37 +0200 |
| commit | 130a32fa7259d348dc3a684b38e688da398c30bb (patch) | |
| tree | fdac0e731215a273252f93254690a37d2c77fc25 /src/libsyntax/ext | |
| parent | beff387601fef141e7b6716a6cd50728d079a0c1 (diff) | |
| download | rust-130a32fa7259d348dc3a684b38e688da398c30bb.tar.gz rust-130a32fa7259d348dc3a684b38e688da398c30bb.zip | |
Remove OneVector
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/base.rs | 50 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 41 | ||||
| -rw-r--r-- | src/libsyntax/ext/placeholders.rs | 12 | ||||
| -rw-r--r-- | src/libsyntax/ext/source_util.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax/ext/tt/macro_parser.rs | 12 | ||||
| -rw-r--r-- | src/libsyntax/ext/tt/transcribe.rs | 4 |
6 files changed, 66 insertions, 61 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index e42624bf41f..5bf1a7dd663 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -22,7 +22,7 @@ use fold::{self, Folder}; use parse::{self, parser, DirectoryOwnership}; use parse::token; use ptr::P; -use OneVector; +use smallvec::SmallVec; use symbol::{keywords, Ident, Symbol}; use ThinVec; @@ -332,22 +332,22 @@ pub trait MacResult { None } /// Create zero or more items. - fn make_items(self: Box<Self>) -> Option<OneVector<P<ast::Item>>> { + fn make_items(self: Box<Self>) -> Option<SmallVec<[P<ast::Item>; 1]>> { None } /// Create zero or more impl items. - fn make_impl_items(self: Box<Self>) -> Option<OneVector<ast::ImplItem>> { + fn make_impl_items(self: Box<Self>) -> Option<SmallVec<[ast::ImplItem; 1]>> { None } /// Create zero or more trait items. - fn make_trait_items(self: Box<Self>) -> Option<OneVector<ast::TraitItem>> { + fn make_trait_items(self: Box<Self>) -> Option<SmallVec<[ast::TraitItem; 1]>> { None } /// Create zero or more items in an `extern {}` block - fn make_foreign_items(self: Box<Self>) -> Option<OneVector<ast::ForeignItem>> { None } + fn make_foreign_items(self: Box<Self>) -> Option<SmallVec<[ast::ForeignItem; 1]>> { None } /// Create a pattern. fn make_pat(self: Box<Self>) -> Option<P<ast::Pat>> { @@ -358,7 +358,7 @@ pub trait MacResult { /// /// By default this attempts to create an expression statement, /// returning None if that fails. - fn make_stmts(self: Box<Self>) -> Option<OneVector<ast::Stmt>> { + fn make_stmts(self: Box<Self>) -> Option<SmallVec<[ast::Stmt; 1]>> { make_stmts_default!(self) } @@ -394,11 +394,11 @@ macro_rules! make_MacEager { make_MacEager! { expr: P<ast::Expr>, pat: P<ast::Pat>, - items: OneVector<P<ast::Item>>, - impl_items: OneVector<ast::ImplItem>, - trait_items: OneVector<ast::TraitItem>, - foreign_items: OneVector<ast::ForeignItem>, - stmts: OneVector<ast::Stmt>, + items: SmallVec<[P<ast::Item>; 1]>, + impl_items: SmallVec<[ast::ImplItem; 1]>, + trait_items: SmallVec<[ast::TraitItem; 1]>, + foreign_items: SmallVec<[ast::ForeignItem; 1]>, + stmts: SmallVec<[ast::Stmt; 1]>, ty: P<ast::Ty>, } @@ -407,23 +407,23 @@ impl MacResult for MacEager { self.expr } - fn make_items(self: Box<Self>) -> Option<OneVector<P<ast::Item>>> { + fn make_items(self: Box<Self>) -> Option<SmallVec<[P<ast::Item>; 1]>> { self.items } - fn make_impl_items(self: Box<Self>) -> Option<OneVector<ast::ImplItem>> { + fn make_impl_items(self: Box<Self>) -> Option<SmallVec<[ast::ImplItem; 1]>> { self.impl_items } - fn make_trait_items(self: Box<Self>) -> Option<OneVector<ast::TraitItem>> { + fn make_trait_items(self: Box<Self>) -> Option<SmallVec<[ast::TraitItem; 1]>> { self.trait_items } - fn make_foreign_items(self: Box<Self>) -> Option<OneVector<ast::ForeignItem>> { + fn make_foreign_items(self: Box<Self>) -> Option<SmallVec<[ast::ForeignItem; 1]>> { self.foreign_items } - fn make_stmts(self: Box<Self>) -> Option<OneVector<ast::Stmt>> { + fn make_stmts(self: Box<Self>) -> Option<SmallVec<[ast::Stmt; 1]>> { match self.stmts.as_ref().map_or(0, |s| s.len()) { 0 => make_stmts_default!(self), _ => self.stmts, @@ -514,40 +514,40 @@ impl MacResult for DummyResult { Some(P(DummyResult::raw_pat(self.span))) } - fn make_items(self: Box<DummyResult>) -> Option<OneVector<P<ast::Item>>> { + fn make_items(self: Box<DummyResult>) -> Option<SmallVec<[P<ast::Item>; 1]>> { // this code needs a comment... why not always just return the Some() ? if self.expr_only { None } else { - Some(OneVector::new()) + Some(SmallVec::new()) } } - fn make_impl_items(self: Box<DummyResult>) -> Option<OneVector<ast::ImplItem>> { + fn make_impl_items(self: Box<DummyResult>) -> Option<SmallVec<[ast::ImplItem; 1]>> { if self.expr_only { None } else { - Some(OneVector::new()) + Some(SmallVec::new()) } } - fn make_trait_items(self: Box<DummyResult>) -> Option<OneVector<ast::TraitItem>> { + fn make_trait_items(self: Box<DummyResult>) -> Option<SmallVec<[ast::TraitItem; 1]>> { if self.expr_only { None } else { - Some(OneVector::new()) + Some(SmallVec::new()) } } - fn make_foreign_items(self: Box<Self>) -> Option<OneVector<ast::ForeignItem>> { + fn make_foreign_items(self: Box<Self>) -> Option<SmallVec<[ast::ForeignItem; 1]>> { if self.expr_only { None } else { - Some(OneVector::new()) + Some(SmallVec::new()) } } - fn make_stmts(self: Box<DummyResult>) -> Option<OneVector<ast::Stmt>> { + fn make_stmts(self: Box<DummyResult>) -> Option<SmallVec<[ast::Stmt; 1]>> { Some(smallvec![ast::Stmt { id: ast::DUMMY_NODE_ID, node: ast::StmtKind::Expr(DummyResult::raw_expr(self.span)), diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 33d0e76ca48..87c53d16875 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -25,7 +25,7 @@ use parse::{DirectoryOwnership, PResult, ParseSess}; use parse::token::{self, Token}; use parse::parser::Parser; use ptr::P; -use OneVector; +use smallvec::SmallVec; use symbol::Symbol; use symbol::keywords; use syntax_pos::{Span, DUMMY_SP, FileName}; @@ -147,15 +147,19 @@ ast_fragments! { Expr(P<ast::Expr>) { "expression"; one fn fold_expr; fn visit_expr; fn make_expr; } Pat(P<ast::Pat>) { "pattern"; one fn fold_pat; fn visit_pat; fn make_pat; } Ty(P<ast::Ty>) { "type"; one fn fold_ty; fn visit_ty; fn make_ty; } - Stmts(OneVector<ast::Stmt>) { "statement"; many fn fold_stmt; fn visit_stmt; fn make_stmts; } - Items(OneVector<P<ast::Item>>) { "item"; many fn fold_item; fn visit_item; fn make_items; } - TraitItems(OneVector<ast::TraitItem>) { + Stmts(SmallVec<[ast::Stmt; 1]>) { + "statement"; many fn fold_stmt; fn visit_stmt; fn make_stmts; + } + Items(SmallVec<[P<ast::Item>; 1]>) { + "item"; many fn fold_item; fn visit_item; fn make_items; + } + TraitItems(SmallVec<[ast::TraitItem; 1]>) { "trait item"; many fn fold_trait_item; fn visit_trait_item; fn make_trait_items; } - ImplItems(OneVector<ast::ImplItem>) { + ImplItems(SmallVec<[ast::ImplItem; 1]>) { "impl item"; many fn fold_impl_item; fn visit_impl_item; fn make_impl_items; } - ForeignItems(OneVector<ast::ForeignItem>) { + ForeignItems(SmallVec<[ast::ForeignItem; 1]>) { "foreign item"; many fn fold_foreign_item; fn visit_foreign_item; fn make_foreign_items; } } @@ -980,28 +984,28 @@ impl<'a> Parser<'a> { -> PResult<'a, AstFragment> { Ok(match kind { AstFragmentKind::Items => { - let mut items = OneVector::new(); + let mut items = SmallVec::new(); while let Some(item) = self.parse_item()? { items.push(item); } AstFragment::Items(items) } AstFragmentKind::TraitItems => { - let mut items = OneVector::new(); + let mut items = SmallVec::new(); while self.token != token::Eof { items.push(self.parse_trait_item(&mut false)?); } AstFragment::TraitItems(items) } AstFragmentKind::ImplItems => { - let mut items = OneVector::new(); + let mut items = SmallVec::new(); while self.token != token::Eof { items.push(self.parse_impl_item(&mut false)?); } AstFragment::ImplItems(items) } AstFragmentKind::ForeignItems => { - let mut items = OneVector::new(); + let mut items = SmallVec::new(); while self.token != token::Eof { if let Some(item) = self.parse_foreign_item()? { items.push(item); @@ -1010,7 +1014,7 @@ impl<'a> Parser<'a> { AstFragment::ForeignItems(items) } AstFragmentKind::Stmts => { - let mut stmts = OneVector::new(); + let mut stmts = SmallVec::new(); while self.token != token::Eof && // won't make progress on a `}` self.token != token::CloseDelim(token::Brace) { @@ -1245,10 +1249,10 @@ impl<'a, 'b> Folder for InvocationCollector<'a, 'b> { }) } - fn fold_stmt(&mut self, stmt: ast::Stmt) -> OneVector<ast::Stmt> { + fn fold_stmt(&mut self, stmt: ast::Stmt) -> SmallVec<[ast::Stmt; 1]> { let mut stmt = match self.cfg.configure_stmt(stmt) { Some(stmt) => stmt, - None => return OneVector::new(), + None => return SmallVec::new(), }; // we'll expand attributes on expressions separately @@ -1303,7 +1307,7 @@ impl<'a, 'b> Folder for InvocationCollector<'a, 'b> { result } - fn fold_item(&mut self, item: P<ast::Item>) -> OneVector<P<ast::Item>> { + fn fold_item(&mut self, item: P<ast::Item>) -> SmallVec<[P<ast::Item>; 1]> { let item = configure!(self, item); let (attr, traits, item, together_with) = self.classify_item(item); @@ -1378,7 +1382,7 @@ impl<'a, 'b> Folder for InvocationCollector<'a, 'b> { } } - fn fold_trait_item(&mut self, item: ast::TraitItem) -> OneVector<ast::TraitItem> { + fn fold_trait_item(&mut self, item: ast::TraitItem) -> SmallVec<[ast::TraitItem; 1]> { let item = configure!(self, item); let (attr, traits, item, together_with) = self.classify_item(item); @@ -1397,7 +1401,7 @@ impl<'a, 'b> Folder for InvocationCollector<'a, 'b> { } } - fn fold_impl_item(&mut self, item: ast::ImplItem) -> OneVector<ast::ImplItem> { + fn fold_impl_item(&mut self, item: ast::ImplItem) -> SmallVec<[ast::ImplItem; 1]> { let item = configure!(self, item); let (attr, traits, item, together_with) = self.classify_item(item); @@ -1432,8 +1436,9 @@ impl<'a, 'b> Folder for InvocationCollector<'a, 'b> { noop_fold_foreign_mod(self.cfg.configure_foreign_mod(foreign_mod), self) } - fn fold_foreign_item(&mut self, - foreign_item: ast::ForeignItem) -> OneVector<ast::ForeignItem> { + fn fold_foreign_item(&mut self, foreign_item: ast::ForeignItem) + -> SmallVec<[ast::ForeignItem; 1]> + { let (attr, traits, foreign_item, together_with) = self.classify_item(foreign_item); if attr.is_some() || !traits.is_empty() { diff --git a/src/libsyntax/ext/placeholders.rs b/src/libsyntax/ext/placeholders.rs index 5906412883a..7f31b04ef9c 100644 --- a/src/libsyntax/ext/placeholders.rs +++ b/src/libsyntax/ext/placeholders.rs @@ -16,7 +16,7 @@ use ext::hygiene::Mark; use tokenstream::TokenStream; use fold::*; use ptr::P; -use OneVector; +use smallvec::SmallVec; use symbol::keywords; use ThinVec; use util::move_map::MoveMap; @@ -115,7 +115,7 @@ impl<'a, 'b> PlaceholderExpander<'a, 'b> { } impl<'a, 'b> Folder for PlaceholderExpander<'a, 'b> { - fn fold_item(&mut self, item: P<ast::Item>) -> OneVector<P<ast::Item>> { + fn fold_item(&mut self, item: P<ast::Item>) -> SmallVec<[P<ast::Item>; 1]> { match item.node { ast::ItemKind::Mac(_) => return self.remove(item.id).make_items(), ast::ItemKind::MacroDef(_) => return smallvec![item], @@ -125,21 +125,21 @@ impl<'a, 'b> Folder for PlaceholderExpander<'a, 'b> { noop_fold_item(item, self) } - fn fold_trait_item(&mut self, item: ast::TraitItem) -> OneVector<ast::TraitItem> { + fn fold_trait_item(&mut self, item: ast::TraitItem) -> SmallVec<[ast::TraitItem; 1]> { match item.node { ast::TraitItemKind::Macro(_) => self.remove(item.id).make_trait_items(), _ => noop_fold_trait_item(item, self), } } - fn fold_impl_item(&mut self, item: ast::ImplItem) -> OneVector<ast::ImplItem> { + fn fold_impl_item(&mut self, item: ast::ImplItem) -> SmallVec<[ast::ImplItem; 1]> { match item.node { ast::ImplItemKind::Macro(_) => self.remove(item.id).make_impl_items(), _ => noop_fold_impl_item(item, self), } } - fn fold_foreign_item(&mut self, item: ast::ForeignItem) -> OneVector<ast::ForeignItem> { + fn fold_foreign_item(&mut self, item: ast::ForeignItem) -> SmallVec<[ast::ForeignItem; 1]> { match item.node { ast::ForeignItemKind::Macro(_) => self.remove(item.id).make_foreign_items(), _ => noop_fold_foreign_item(item, self), @@ -160,7 +160,7 @@ impl<'a, 'b> Folder for PlaceholderExpander<'a, 'b> { } } - fn fold_stmt(&mut self, stmt: ast::Stmt) -> OneVector<ast::Stmt> { + fn fold_stmt(&mut self, stmt: ast::Stmt) -> SmallVec<[ast::Stmt; 1]> { let (style, mut stmts) = match stmt.node { ast::StmtKind::Mac(mac) => (mac.1, self.remove(stmt.id).make_stmts()), _ => return noop_fold_stmt(stmt, self), diff --git a/src/libsyntax/ext/source_util.rs b/src/libsyntax/ext/source_util.rs index e4b9e3216b1..f5d1bd6255e 100644 --- a/src/libsyntax/ext/source_util.rs +++ b/src/libsyntax/ext/source_util.rs @@ -17,7 +17,7 @@ use parse::{token, DirectoryOwnership}; use parse; use print::pprust; use ptr::P; -use OneVector; +use smallvec::SmallVec; use symbol::Symbol; use tokenstream; @@ -110,9 +110,9 @@ pub fn expand_include<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[tokenstream::T fn make_expr(mut self: Box<ExpandResult<'a>>) -> Option<P<ast::Expr>> { Some(panictry!(self.p.parse_expr())) } - fn make_items(mut self: Box<ExpandResult<'a>>) - -> Option<OneVector<P<ast::Item>>> { - let mut ret = OneVector::new(); + + fn make_items(mut self: Box<ExpandResult<'a>>) -> Option<SmallVec<[P<ast::Item>; 1]>> { + let mut ret = SmallVec::new(); while self.p.token != token::Eof { match panictry!(self.p.parse_item()) { Some(item) => ret.push(item), diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs index 941fd6f1000..03a8376e763 100644 --- a/src/libsyntax/ext/tt/macro_parser.rs +++ b/src/libsyntax/ext/tt/macro_parser.rs @@ -92,7 +92,7 @@ use parse::{Directory, ParseSess}; use parse::parser::{Parser, PathStyle}; use parse::token::{self, DocComment, Nonterminal, Token}; use print::pprust; -use OneVector; +use smallvec::SmallVec; use symbol::keywords; use tokenstream::{DelimSpan, TokenStream}; @@ -440,10 +440,10 @@ fn token_name_eq(t1: &Token, t2: &Token) -> bool { /// A `ParseResult`. Note that matches are kept track of through the items generated. fn inner_parse_loop<'a>( sess: &ParseSess, - cur_items: &mut OneVector<MatcherPosHandle<'a>>, + cur_items: &mut SmallVec<[MatcherPosHandle<'a>; 1]>, next_items: &mut Vec<MatcherPosHandle<'a>>, - eof_items: &mut OneVector<MatcherPosHandle<'a>>, - bb_items: &mut OneVector<MatcherPosHandle<'a>>, + eof_items: &mut SmallVec<[MatcherPosHandle<'a>; 1]>, + bb_items: &mut SmallVec<[MatcherPosHandle<'a>; 1]>, token: &Token, span: syntax_pos::Span, ) -> ParseResult<()> { @@ -649,10 +649,10 @@ pub fn parse( loop { // Matcher positions black-box parsed by parser.rs (`parser`) - let mut bb_items = OneVector::new(); + let mut bb_items = SmallVec::new(); // Matcher positions that would be valid if the macro invocation was over now - let mut eof_items = OneVector::new(); + let mut eof_items = SmallVec::new(); assert!(next_items.is_empty()); // Process `cur_items` until either we have finished the input or we need to get some diff --git a/src/libsyntax/ext/tt/transcribe.rs b/src/libsyntax/ext/tt/transcribe.rs index 2ed469e8e77..ae486158fee 100644 --- a/src/libsyntax/ext/tt/transcribe.rs +++ b/src/libsyntax/ext/tt/transcribe.rs @@ -15,7 +15,7 @@ use ext::tt::macro_parser::{NamedMatch, MatchedSeq, MatchedNonterminal}; use ext::tt::quoted; use fold::noop_fold_tt; use parse::token::{self, Token, NtTT}; -use OneVector; +use smallvec::SmallVec; use syntax_pos::DUMMY_SP; use tokenstream::{TokenStream, TokenTree, Delimited, DelimSpan}; @@ -70,7 +70,7 @@ pub fn transcribe(cx: &ExtCtxt, interp: Option<FxHashMap<Ident, Rc<NamedMatch>>>, src: Vec<quoted::TokenTree>) -> TokenStream { - let mut stack: OneVector<Frame> = smallvec![Frame::new(src)]; + let mut stack: SmallVec<[Frame; 1]> = smallvec![Frame::new(src)]; let interpolations = interp.unwrap_or_else(FxHashMap::default); /* just a convenience */ let mut repeats = Vec::new(); let mut result: Vec<TokenStream> = Vec::new(); |
