Rollup merge of #35874 - CensoredUsername:stmt_let_typed_fix, r=Manishearth
This commit makes the return type of AstBuilder.stmt_let_typed match the return type of other AstBuilder.stmt* functions. This avoids unnecessary boxing/unboxing whenever Stmt's are stored in a Vec, which is the default use case.nnThis is a potentially plugin breaking change.
This commit is contained in:
commit
a73ba8b98c
@ -96,7 +96,7 @@ pub trait AstBuilder {
|
||||
ident: ast::Ident,
|
||||
typ: P<ast::Ty>,
|
||||
ex: P<ast::Expr>)
|
||||
-> P<ast::Stmt>;
|
||||
-> ast::Stmt;
|
||||
fn stmt_let_type_only(&self, span: Span, ty: P<ast::Ty>) -> ast::Stmt;
|
||||
fn stmt_item(&self, sp: Span, item: P<ast::Item>) -> ast::Stmt;
|
||||
|
||||
@ -556,7 +556,7 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
|
||||
ident: ast::Ident,
|
||||
typ: P<ast::Ty>,
|
||||
ex: P<ast::Expr>)
|
||||
-> P<ast::Stmt> {
|
||||
-> ast::Stmt {
|
||||
let pat = if mutbl {
|
||||
let binding_mode = ast::BindingMode::ByValue(ast::Mutability::Mutable);
|
||||
self.pat_ident_binding_mode(sp, ident, binding_mode)
|
||||
@ -571,11 +571,11 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
|
||||
span: sp,
|
||||
attrs: ast::ThinVec::new(),
|
||||
});
|
||||
P(ast::Stmt {
|
||||
ast::Stmt {
|
||||
id: ast::DUMMY_NODE_ID,
|
||||
node: ast::StmtKind::Local(local),
|
||||
span: sp,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// Generate `let _: Type;`, usually used for type assertions.
|
||||
|
Loading…
x
Reference in New Issue
Block a user