From 5290a82434aa95d1c62517b2318eed80ec55f8c3 Mon Sep 17 00:00:00 2001 From: Philip Herron Date: Thu, 17 Jun 2021 13:44:00 +0100 Subject: Remove HIR::TraitItemMethod this can be represented by TraitItemFunction Methods are simply functions with a self param, this simplifies the paths in HIR to avoid duplication as much as possible. --- gcc/rust/backend/rust-compile-base.h | 1 - gcc/rust/backend/rust-compile-fnparam.h | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'gcc/rust/backend') diff --git a/gcc/rust/backend/rust-compile-base.h b/gcc/rust/backend/rust-compile-base.h index 232d5b9..ed33515 100644 --- a/gcc/rust/backend/rust-compile-base.h +++ b/gcc/rust/backend/rust-compile-base.h @@ -143,7 +143,6 @@ public: virtual void visit (HIR::ConstantItem &const_item) {} virtual void visit (HIR::StaticItem &static_item) {} virtual void visit (HIR::TraitItemFunc &item) {} - virtual void visit (HIR::TraitItemMethod &item) {} virtual void visit (HIR::TraitItemConst &item) {} virtual void visit (HIR::TraitItemType &item) {} virtual void visit (HIR::Trait &trait) {} diff --git a/gcc/rust/backend/rust-compile-fnparam.h b/gcc/rust/backend/rust-compile-fnparam.h index 13bb74d..e3f9558 100644 --- a/gcc/rust/backend/rust-compile-fnparam.h +++ b/gcc/rust/backend/rust-compile-fnparam.h @@ -70,7 +70,10 @@ public: HIR::SelfParam &self, Btype *decl_type, Location locus) { - if (!self.get_is_mut ()) + bool is_immutable + = self.get_self_kind () == HIR::SelfParam::ImplicitSelfKind::IMM + || self.get_self_kind () == HIR::SelfParam::ImplicitSelfKind::IMM_REF; + if (is_immutable) decl_type = ctx->get_backend ()->immutable_type (decl_type); return ctx->get_backend ()->parameter_variable (fndecl, "self", decl_type, -- cgit v1.1