]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: ast: Add new constructors for PathInExpression
authorArthur Cohen <arthur.cohen@embecosm.com>
Sat, 21 Dec 2024 22:53:50 +0000 (22:53 +0000)
committerArthur Cohen <arthur.cohen@embecosm.com>
Fri, 21 Mar 2025 11:55:44 +0000 (12:55 +0100)
This commit adds two new constructors for AST::PathInExpression: One using a provided lang-item, and one with an already built std::unique_ptr<Path>

gcc/rust/ChangeLog:

* ast/rust-path.h: Add two new constructors.

gcc/rust/ast/rust-path.h

index 563ad52a9d6d8c32d74c5a494d8996e49a965f2c..39d42fd7e155907d716328803ab5764f30371def 100644 (file)
@@ -715,6 +715,24 @@ public:
       marked_for_strip (false)
   {}
 
+  PathInExpression (LangItem::Kind lang_item_kind,
+                   std::vector<Attribute> outer_attrs, location_t locus)
+    : outer_attrs (std::move (outer_attrs)),
+      has_opening_scope_resolution (false), locus (locus),
+      _node_id (Analysis::Mappings::get ().get_next_node_id ()),
+      path (Rust::make_unique<LangItemPath> (lang_item_kind, locus)),
+      marked_for_strip (false)
+  {}
+
+  PathInExpression (std::unique_ptr<Path> path,
+                   std::vector<Attribute> outer_attrs, location_t locus,
+                   bool has_opening_scope_resolution = false)
+    : outer_attrs (std::move (outer_attrs)),
+      has_opening_scope_resolution (has_opening_scope_resolution),
+      locus (locus), _node_id (Analysis::Mappings::get ().get_next_node_id ()),
+      path (std::move (path)), marked_for_strip (false)
+  {}
+
   PathInExpression (const PathInExpression &other)
     : outer_attrs (other.outer_attrs),
       has_opening_scope_resolution (other.has_opening_scope_resolution),
@@ -738,7 +756,8 @@ public:
   // Creates an error state path in expression.
   static PathInExpression create_error ()
   {
-    return PathInExpression ({}, {}, UNDEF_LOCATION);
+    return PathInExpression (std::vector<PathExprSegment> (), {},
+                            UNDEF_LOCATION);
   }
 
   // Returns whether path in expression is in an error state.