bool get_is_mut () const { return mutability == Mutability::Mut; }
+ Mutability get_mutability () const { return mutability; }
+
bool get_is_double_borrow () const { return double_borrow; }
bool is_raw_borrow () const { return raw_borrow; }
void
ASTLoweringExpr::visit (AST::BorrowExpr &expr)
{
+ if (expr.is_raw_borrow ())
+ rust_unreachable ();
+
HIR::Expr *borrow_lvalue
= ASTLoweringExpr::translate (expr.get_borrowed_expr ());
auto *borrow_expr
= new HIR::BorrowExpr (mapping, std::unique_ptr<HIR::Expr> (borrow_lvalue),
- expr.get_is_mut () ? Mutability::Mut
- : Mutability::Imm,
- expr.get_outer_attrs (), expr.get_locus ());
+ expr.get_mutability (), expr.get_outer_attrs (),
+ expr.get_locus ());
if (expr.get_is_double_borrow ())
{
borrow_expr
= new HIR::BorrowExpr (mapping,
std::unique_ptr<HIR::Expr> (borrow_expr),
- expr.get_is_mut () ? Mutability::Mut
- : Mutability::Imm,
- expr.get_outer_attrs (), expr.get_locus ());
+ expr.get_mutability (), expr.get_outer_attrs (),
+ expr.get_locus ());
}
translated = borrow_expr;