pub fn take_attributes(&mut self) -> Vec<ast::Attribute> {
        match self {
            Self::Path(_) => Vec::new(),
            Self::Item(item) => item.take_attributes(),
            Self::Break(expr) => take(&mut expr.attributes),
            Self::Continue(expr) => take(&mut expr.attributes),
            Self::Yield(expr) => take(&mut expr.attributes),
            Self::Block(expr) => take(&mut expr.attributes),
            Self::Return(expr) => take(&mut expr.attributes),
            Self::Closure(expr) => take(&mut expr.attributes),
            Self::Match(expr) => take(&mut expr.attributes),
            Self::While(expr) => take(&mut expr.attributes),
            Self::Loop(expr) => take(&mut expr.attributes),
            Self::For(expr) => take(&mut expr.attributes),
            Self::Let(expr) => take(&mut expr.attributes),
            Self::If(expr) => take(&mut expr.attributes),
            Self::Select(expr) => take(&mut expr.attributes),
            Self::Lit(expr) => take(&mut expr.attributes),
            Self::Assign(expr) => take(&mut expr.attributes),
            Self::Binary(expr) => take(&mut expr.attributes),
            Self::Call(expr) => take(&mut expr.attributes),
            Self::FieldAccess(expr) => take(&mut expr.attributes),
            Self::Group(expr) => take(&mut expr.attributes),
            Self::Unary(expr) => take(&mut expr.attributes),
            Self::Index(expr) => take(&mut expr.attributes),
            Self::Await(expr) => take(&mut expr.attributes),
            Self::Try(expr) => take(&mut expr.attributes),
            Self::ForceSemi(expr) => expr.expr.take_attributes(),
            Self::Object(expr) => take(&mut expr.attributes),
            Self::Range(expr) => take(&mut expr.attributes),
            Self::Vec(expr) => take(&mut expr.attributes),
            Self::Tuple(expr) => take(&mut expr.attributes),
            Self::MacroCall(expr) => take(&mut expr.attributes),
        }
    }
/// Take the attributes from the expression.
Take the attributes from the expression.
Take the attributes from the expression .
pub fn take_attributes(&mut self) -> Vec<ast::Attribute> {
        match self {
            Self::Path(_) => Vec::new(),
            Self::Item(item) => item.take_attributes(),
            Self::Break(expr) => take(&mut expr.attributes),
            Self::Continue(expr) => take(&mut expr.attributes),
            Self::Yield(expr) => take(&mut expr.attributes),
            Self::Block(expr) => take(&mut expr.attributes),
            Self::Return(expr) => take(&mut expr.attributes),
            Self::Closure(expr) => take(&mut expr.attributes),
            Self::Match(expr) => take(&mut expr.attributes),
            Self::While(expr) => take(&mut expr.attributes),
            Self::Loop(expr) => take(&mut expr.attributes),
            Self::For(expr) => take(&mut expr.attributes),
            Self::Let(expr) => take(&mut expr.attributes),
            Self::If(expr) => take(&mut expr.attributes),
            Self::Select(expr) => take(&mut expr.attributes),
            Self::Lit(expr) => take(&mut expr.attributes),
            Self::Assign(expr) => take(&mut expr.attributes),
            Self::Binary(expr) => take(&mut expr.attributes),
            Self::Call(expr) => take(&mut expr.attributes),
            Self::FieldAccess(expr) => take(&mut expr.attributes),
            Self::Group(expr) => take(&mut expr.attributes),
            Self::Unary(expr) => take(&mut expr.attributes),
            Self::Index(expr) => take(&mut expr.attributes),
            Self::Await(expr) => take(&mut expr.attributes),
            Self::Try(expr) => take(&mut expr.attributes),
            Self::ForceSemi(expr) => expr.expr.take_attributes(),
            Self::Object(expr) => take(&mut expr.attributes),
            Self::Range(expr) => take(&mut expr.attributes),
            Self::Vec(expr) => take(&mut expr.attributes),
            Self::Tuple(expr) => take(&mut expr.attributes),
            Self::MacroCall(expr) => take(&mut expr.attributes),
        }
    }
pub fn take_attributes ( & mut self ) -> Vec < ast :: Attribute > { match self { Self :: Path ( _ ) => Vec :: new ( ) , Self :: Item ( item ) => item . take_attributes ( ) , Self :: Break ( expr ) => take ( & mut expr . attributes ) , Self :: Continue ( expr ) => take ( & mut expr . attributes ) , Self :: Yield ( expr ) => take ( & mut expr . attributes ) , Self :: Block ( expr ) => take ( & mut expr . attributes ) , Self :: Return ( expr ) => take ( & mut expr . attributes ) , Self :: Closure ( expr ) => take ( & mut expr . attributes ) , Self :: Match ( expr ) => take ( & mut expr . attributes ) , Self :: While ( expr ) => take ( & mut expr . attributes ) , Self :: Loop ( expr ) => take ( & mut expr . attributes ) , Self :: For ( expr ) => take ( & mut expr . attributes ) , Self :: Let ( expr ) => take ( & mut expr . attributes ) , Self :: If ( expr ) => take ( & mut expr . attributes ) , Self :: Select ( expr ) => take ( & mut expr . attributes ) , Self :: Lit ( expr ) => take ( & mut expr . attributes ) , Self :: Assign ( expr ) => take ( & mut expr . attributes ) , Self :: Binary ( expr ) => take ( & mut expr . attributes ) , Self :: Call ( expr ) => take ( & mut expr . attributes ) , Self :: FieldAccess ( expr ) => take ( & mut expr . attributes ) , Self :: Group ( expr ) => take ( & mut expr . attributes ) , Self :: Unary ( expr ) => take ( & mut expr . attributes ) , Self :: Index ( expr ) => take ( & mut expr . attributes ) , Self :: Await ( expr ) => take ( & mut expr . attributes ) , Self :: Try ( expr ) => take ( & mut expr . attributes ) , Self :: ForceSemi ( expr ) => expr . expr . take_attributes ( ) , Self :: Object ( expr ) => take ( & mut expr . attributes ) , Self :: Range ( expr ) => take ( & mut expr . attributes ) , Self :: Vec ( expr ) => take ( & mut expr . attributes ) , Self :: Tuple ( expr ) => take ( & mut expr . attributes ) , Self :: MacroCall ( expr ) => take ( & mut expr . attributes ) , } }
Take the attributes from the expression.
Take the attributes from the expression .
&mut self
&mut self