aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend/rust-compile-expr.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/backend/rust-compile-expr.h')
-rw-r--r--gcc/rust/backend/rust-compile-expr.h31
1 files changed, 1 insertions, 30 deletions
diff --git a/gcc/rust/backend/rust-compile-expr.h b/gcc/rust/backend/rust-compile-expr.h
index 096b705..7fd708c 100644
--- a/gcc/rust/backend/rust-compile-expr.h
+++ b/gcc/rust/backend/rust-compile-expr.h
@@ -201,36 +201,7 @@ public:
void visit (HIR::CompoundAssignmentExpr &expr) override;
- void visit (HIR::ArrayIndexExpr &expr) override
- {
- tree array_reference = CompileExpr::Compile (expr.get_array_expr (), ctx);
- tree index = CompileExpr::Compile (expr.get_index_expr (), ctx);
-
- // lets check if the array is a reference type then we can add an
- // indirection if required
- TyTy::BaseType *array_expr_ty = nullptr;
- bool ok = ctx->get_tyctx ()->lookup_type (
- expr.get_array_expr ()->get_mappings ().get_hirid (), &array_expr_ty);
- rust_assert (ok);
-
- // do we need to add an indirect reference
- if (array_expr_ty->get_kind () == TyTy::TypeKind::REF)
- {
- TyTy::ReferenceType *r
- = static_cast<TyTy::ReferenceType *> (array_expr_ty);
- TyTy::BaseType *tuple_type = r->get_base ();
- tree array_tyty = TyTyResolveCompile::compile (ctx, tuple_type);
-
- array_reference
- = ctx->get_backend ()->indirect_expression (array_tyty,
- array_reference, true,
- expr.get_locus ());
- }
-
- translated
- = ctx->get_backend ()->array_index_expression (array_reference, index,
- expr.get_locus ());
- }
+ void visit (HIR::ArrayIndexExpr &expr) override;
void visit (HIR::ArrayExpr &expr) override;