diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-01-30 14:19:03 +0100 |
---|---|---|
committer | CohenArthur <arthur.cohen@embecosm.com> | 2025-02-02 18:28:58 +0000 |
commit | 9d6bd59e86946aeea41551f8ab227f3954235029 (patch) | |
tree | bbd34c3d59272d13413d3f62391868daaa897247 /gcc | |
parent | adf6afb8205de374e95d8fb08573428630289547 (diff) | |
download | gcc-9d6bd59e86946aeea41551f8ab227f3954235029.zip gcc-9d6bd59e86946aeea41551f8ab227f3954235029.tar.gz gcc-9d6bd59e86946aeea41551f8ab227f3954235029.tar.bz2 |
lang-items: Add structural_{peq, teq}
These lang items are used when deriving Eq and PartialEq, and will be checked when compiling pattern matching.
gcc/rust/ChangeLog:
* util/rust-lang-item.cc: New items.
* util/rust-lang-item.h: Likewise.
gcc/testsuite/ChangeLog:
* rust/compile/structural-eq-peq.rs: New test.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/util/rust-lang-item.cc | 3 | ||||
-rw-r--r-- | gcc/rust/util/rust-lang-item.h | 3 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/structural-eq-peq.rs | 9 |
3 files changed, 15 insertions, 0 deletions
diff --git a/gcc/rust/util/rust-lang-item.cc b/gcc/rust/util/rust-lang-item.cc index 091c6b6..9fcd325 100644 --- a/gcc/rust/util/rust-lang-item.cc +++ b/gcc/rust/util/rust-lang-item.cc @@ -112,6 +112,9 @@ const BiMap<std::string, LangItem::Kind> Rust::LangItem::lang_items = {{ {"from_ok", Kind::TRY_FROM_OK}, {"from", Kind::FROM_FROM}, + + {"structural_peq", Kind::STRUCTURAL_PEQ}, + {"structural_teq", Kind::STRUCTURAL_TEQ}, }}; tl::optional<LangItem::Kind> diff --git a/gcc/rust/util/rust-lang-item.h b/gcc/rust/util/rust-lang-item.h index b5abf61..61d6454e 100644 --- a/gcc/rust/util/rust-lang-item.h +++ b/gcc/rust/util/rust-lang-item.h @@ -144,6 +144,9 @@ public: // NOTE: This is not a lang item in later versions of Rust FROM_FROM, + + STRUCTURAL_PEQ, + STRUCTURAL_TEQ, }; static const BiMap<std::string, Kind> lang_items; diff --git a/gcc/testsuite/rust/compile/structural-eq-peq.rs b/gcc/testsuite/rust/compile/structural-eq-peq.rs new file mode 100644 index 0000000..d04c295 --- /dev/null +++ b/gcc/testsuite/rust/compile/structural-eq-peq.rs @@ -0,0 +1,9 @@ +#[lang = "structural_peq"] +pub trait StructuralPartialEq { + // Empty. +} + +#[lang = "structural_teq"] +pub trait StructuralEq { + // Empty. +} |