aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2021-06-17 13:44:00 +0100
committerPhilip Herron <philip.herron@embecosm.com>2021-06-17 13:44:00 +0100
commit5290a82434aa95d1c62517b2318eed80ec55f8c3 (patch)
tree0bd3ad6117790406c04003ea8610fe7ca021daf0 /gcc/rust/backend
parenteeee6c73f048177dfdd94c50fe387391d225f4f5 (diff)
downloadgcc-5290a82434aa95d1c62517b2318eed80ec55f8c3.zip
gcc-5290a82434aa95d1c62517b2318eed80ec55f8c3.tar.gz
gcc-5290a82434aa95d1c62517b2318eed80ec55f8c3.tar.bz2
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.
Diffstat (limited to 'gcc/rust/backend')
-rw-r--r--gcc/rust/backend/rust-compile-base.h1
-rw-r--r--gcc/rust/backend/rust-compile-fnparam.h5
2 files changed, 4 insertions, 2 deletions
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,