[gcc/devel/rust/master] Unit structs are not concrete when they need substitutions

Thomas Schwinge tschwinge@gcc.gnu.org
Thu Sep 1 06:46:43 GMT 2022


https://gcc.gnu.org/g:63403f0af7203f3b3c4bc2fef52fee884bb728b8

commit 63403f0af7203f3b3c4bc2fef52fee884bb728b8
Author: Philip Herron <philip.herron@embecosm.com>
Date:   Wed Aug 31 17:16:13 2022 +0100

    Unit structs are not concrete when they need substitutions
    
    Fixes #1518

Diff:
---
 gcc/rust/typecheck/rust-tyty.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gcc/rust/typecheck/rust-tyty.h b/gcc/rust/typecheck/rust-tyty.h
index 649f133edb1..74c8c354897 100644
--- a/gcc/rust/typecheck/rust-tyty.h
+++ b/gcc/rust/typecheck/rust-tyty.h
@@ -1362,6 +1362,11 @@ public:
 
   bool is_concrete () const override final
   {
+    if (is_unit ())
+      {
+	return !needs_substitution ();
+      }
+
     for (auto &variant : variants)
       {
 	for (auto &field : variant->get_fields ())


More information about the Gcc-cvs mailing list