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:
Manish Goregaokar 2016-09-30 17:43:04 +05:30
commit a73ba8b98c

View File

@ -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.