aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2022-10-06 14:46:17 +0100
committerArthur Cohen <arthur.cohen@embecosm.com>2023-02-21 12:36:33 +0100
commit13556413e3841460d88c7a63c8a3049399f6b28e (patch)
tree469f314c188b78f915cf1d508dd64ed9632d125c /gcc/rust/backend
parent522197469179e786e59202a40f2adf9dd95c8ddd (diff)
downloadgcc-13556413e3841460d88c7a63c8a3049399f6b28e.zip
gcc-13556413e3841460d88c7a63c8a3049399f6b28e.tar.gz
gcc-13556413e3841460d88c7a63c8a3049399f6b28e.tar.bz2
gccrs: Support type resolution on super traits on dyn objects
When checking if specified bounds satisfy other bounds we must lookup the super traits. To finish the support for super traits we need to redo the computation of method addresses to support super traits. Addresses #914 gcc/rust/ChangeLog: * backend/rust-compile.cc: Add note about missing support for super traits. * typecheck/rust-tyty.cc (BaseType::satisfies_bound): New function. (BaseType::bounds_compatible): New function. (DynamicObjectType::get_object_items): New function. * typecheck/rust-hir-trait-ref.h: Use new API to perform type resolution on dyn objects.
Diffstat (limited to 'gcc/rust/backend')
-rw-r--r--gcc/rust/backend/rust-compile.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/rust/backend/rust-compile.cc b/gcc/rust/backend/rust-compile.cc
index 13f4243..db08b3d 100644
--- a/gcc/rust/backend/rust-compile.cc
+++ b/gcc/rust/backend/rust-compile.cc
@@ -247,6 +247,8 @@ HIRCompileBase::compute_address_for_trait_item (
// Algo:
// check if there is an impl-item for this trait-item-ref first
// else assert that the trait-item-ref has an implementation
+ //
+ // FIXME this does not support super traits
TyTy::TypeBoundPredicateItem predicate_item
= predicate->lookup_associated_item (ref->get_identifier ());