]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: nr2.0: Fix resolution of constant items
authorOwen Avery <powerboat9.gamer@gmail.com>
Fri, 20 Jun 2025 16:04:29 +0000 (12:04 -0400)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 5 Aug 2025 14:36:50 +0000 (16:36 +0200)
gcc/rust/ChangeLog:

* resolve/rust-default-resolver.cc (DefaultResolver::visit):
Call DefaultASTVisitor::visit even on ConstantItem instances
without expressions.

gcc/testsuite/ChangeLog:

* rust/compile/nr2/exclude: Remove issue-3642.rs.

Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
gcc/rust/resolve/rust-default-resolver.cc
gcc/testsuite/rust/compile/nr2/exclude

index 5f5dd09ca6f1cc4a50d60fe9d3e84f0f97cb3899..cdd41e37b782008295158806e838f705cb4ae541 100644 (file)
@@ -361,19 +361,15 @@ DefaultResolver::visit (AST::MatchExpr &expr)
 void
 DefaultResolver::visit (AST::ConstantItem &item)
 {
-  if (item.has_expr ())
-    {
-      auto expr_vis_1
-       = [this, &item] () { AST::DefaultASTVisitor::visit (item); };
-
-      auto expr_vis_2 = [this, &item, &expr_vis_1] () {
-       ctx.canonical_ctx.scope (item.get_node_id (), item.get_identifier (),
-                                std::move (expr_vis_1));
-      };
-
-      // FIXME: Why do we need a Rib here?
-      ctx.scoped (Rib::Kind::ConstantItem, item.get_node_id (), expr_vis_2);
-    }
+  auto expr_vis_1 = [this, &item] () { AST::DefaultASTVisitor::visit (item); };
+
+  auto expr_vis_2 = [this, &item, &expr_vis_1] () {
+    ctx.canonical_ctx.scope (item.get_node_id (), item.get_identifier (),
+                            std::move (expr_vis_1));
+  };
+
+  // FIXME: Why do we need a Rib here?
+  ctx.scoped (Rib::Kind::ConstantItem, item.get_node_id (), expr_vis_2);
 }
 
 void
index 82faf1ae0ce4ae33dcd22d3de7876f6a36eaf09f..dfaba888dc51a3008d1defa01bca01808aef485c 100644 (file)
@@ -1,4 +1,3 @@
 issue-3315-2.rs
 torture/alt_patterns1.rs
-issue-3642.rs
 # please don't delete the trailing newline