aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/hir
diff options
context:
space:
mode:
authorPhilip Herron <herron.philip@googlemail.com>2024-09-20 17:49:36 +0100
committerCohenArthur <arthur.cohen@embecosm.com>2024-09-20 18:32:10 +0000
commit39eb3a44122ece56c88699b6262869910dd8dbcc (patch)
tree0a57183ebddf4689d3eca35bf870483934b91ebb /gcc/rust/hir
parent5d703a35cae07de269119ad0eed3f1f7a4726046 (diff)
downloadgcc-39eb3a44122ece56c88699b6262869910dd8dbcc.zip
gcc-39eb3a44122ece56c88699b6262869910dd8dbcc.tar.gz
gcc-39eb3a44122ece56c88699b6262869910dd8dbcc.tar.bz2
rust: negative polarity removes restrictions on validation of impl blocks
Negative polarity means we can just ignore if any trait items are not implemented. Fxies #3030 gcc/rust/ChangeLog: * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): the polarity was reversed * typecheck/rust-hir-type-check-item.cc: check the polarity gcc/testsuite/ChangeLog: * rust/compile/nr2/exclude: nr2 cant handle this * rust/compile/issue-3030.rs: New test. Signed-off-by: Philip Herron <herron.philip@googlemail.com>
Diffstat (limited to 'gcc/rust/hir')
-rw-r--r--gcc/rust/hir/rust-ast-lower-item.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/rust/hir/rust-ast-lower-item.cc b/gcc/rust/hir/rust-ast-lower-item.cc
index f3ad72c..cb07b26 100644
--- a/gcc/rust/hir/rust-ast-lower-item.cc
+++ b/gcc/rust/hir/rust-ast-lower-item.cc
@@ -690,8 +690,8 @@ ASTLoweringItem::visit (AST::TraitImpl &impl_block)
}
BoundPolarity polarity = impl_block.is_exclam ()
- ? BoundPolarity::RegularBound
- : BoundPolarity::NegativeBound;
+ ? BoundPolarity::NegativeBound
+ : BoundPolarity::RegularBound;
HIR::ImplBlock *hir_impl_block = new HIR::ImplBlock (
mapping, std::move (impl_items), std::move (generic_params),
std::unique_ptr<HIR::Type> (impl_type),