diff options
| author | yjhmelody <465402634@qq.com> | 2019-10-22 12:25:14 +0800 |
|---|---|---|
| committer | yjhmelody <465402634@qq.com> | 2019-10-22 12:25:14 +0800 |
| commit | 40f92b3b0595984f40aafd70ec4a5b9a3bdde47a (patch) | |
| tree | 3f6a6adf2a89459b37b4f8add4b7d3227cf6f984 /src/libsyntax/parse/parser | |
| parent | fa0f7d0080d8e7e9eb20aa9cbf8013f96c81287f (diff) | |
| download | rust-40f92b3b0595984f40aafd70ec4a5b9a3bdde47a.tar.gz rust-40f92b3b0595984f40aafd70ec4a5b9a3bdde47a.zip | |
refactor maybe_append
Diffstat (limited to 'src/libsyntax/parse/parser')
| -rw-r--r-- | src/libsyntax/parse/parser/item.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libsyntax/parse/parser/item.rs b/src/libsyntax/parse/parser/item.rs index 0acfd1450d8..73bd80e2a21 100644 --- a/src/libsyntax/parse/parser/item.rs +++ b/src/libsyntax/parse/parser/item.rs @@ -10,7 +10,6 @@ use crate::ast::{Visibility, VisibilityKind, Mutability, FnHeader, ForeignItem, use crate::ast::{Ty, TyKind, Generics, GenericBounds, TraitRef, EnumDef, VariantData, StructField}; use crate::ast::{Mac, MacDelimiter, Block, BindingMode, FnDecl, MethodSig, SelfKind, Param}; use crate::parse::token; -use crate::parse::parser::maybe_append; use crate::tokenstream::{TokenTree, TokenStream}; use crate::symbol::{kw, sym}; use crate::source_map::{self, respan, Span}; @@ -416,10 +415,17 @@ impl<'a> Parser<'a> { ) -> PResult<'a, Option<P<Item>>> { let (ident, item, extra_attrs) = info; let span = lo.to(self.prev_span); - let attrs = maybe_append(attrs, extra_attrs); + let attrs = Self::maybe_append(attrs, extra_attrs); Ok(Some(self.mk_item(span, ident, item, vis, attrs))) } + fn maybe_append<T>(mut lhs: Vec<T>, mut rhs: Option<Vec<T>>) -> Vec<T> { + if let Some(ref mut rhs) = rhs { + lhs.append(rhs); + } + lhs + } + /// This is the fall-through for parsing items. fn parse_macro_use_or_failure( &mut self, |
