diff options
author | Philip Herron <herron.philip@googlemail.com> | 2025-03-26 19:00:41 +0000 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2025-03-27 13:22:19 +0000 |
commit | 31ee9259a71742a455ead61c8b6142dcfab28b0f (patch) | |
tree | 84f713ba8d0b0b944ce0c7b373b8058910fa432a /gcc/rust/backend/rust-compile-base.h | |
parent | 23097f8132bcaf252020ed04758af71365758a8f (diff) | |
download | gcc-31ee9259a71742a455ead61c8b6142dcfab28b0f.zip gcc-31ee9259a71742a455ead61c8b6142dcfab28b0f.tar.gz gcc-31ee9259a71742a455ead61c8b6142dcfab28b0f.tar.bz2 |
gccrs: Add check for super traits being implemented by Self
We need to recursively check the super traits of the predicate the Self
type is trying to implement. Otherwise its cannot implement it.
Fixes Rust-GCC#3553
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::resolve_impl_block_substitutions):
Track the polarity
* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::validate_type_implements_this):
new validator
* typecheck/rust-tyty.h: new prototypes
gcc/testsuite/ChangeLog:
* rust/compile/issue-3553.rs: New test.
Signed-off-by: Philip Herron <herron.philip@googlemail.com>
Diffstat (limited to 'gcc/rust/backend/rust-compile-base.h')
0 files changed, 0 insertions, 0 deletions