diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/ast/rust-pattern.h | 6 | ||||
-rw-r--r-- | gcc/rust/parse/rust-parse-impl.h | 6 |
2 files changed, 7 insertions, 5 deletions
diff --git a/gcc/rust/ast/rust-pattern.h b/gcc/rust/ast/rust-pattern.h index 3b8dbd7..5d937d7 100644 --- a/gcc/rust/ast/rust-pattern.h +++ b/gcc/rust/ast/rust-pattern.h @@ -848,18 +848,18 @@ class StructPattern : public Pattern // bool has_struct_pattern_elements; StructPatternElements elems; - // TODO: should this store location data? Accessor uses path location data. NodeId node_id; + Location locus; public: std::string as_string () const override; // Constructs a struct pattern from specified StructPatternElements - StructPattern (PathInExpression struct_path, + StructPattern (PathInExpression struct_path, Location locus, StructPatternElements elems = StructPatternElements::create_empty ()) : path (std::move (struct_path)), elems (std::move (elems)), - node_id (Analysis::Mappings::get ()->get_next_node_id ()) + node_id (Analysis::Mappings::get ()->get_next_node_id ()), locus (locus) {} /* TODO: constructor to construct via elements included in diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h index c35595c..2260a95 100644 --- a/gcc/rust/parse/rust-parse-impl.h +++ b/gcc/rust/parse/rust-parse-impl.h @@ -10603,7 +10603,8 @@ Parser<ManagedTokenSource>::parse_pattern () } return std::unique_ptr<AST::StructPattern> ( - new AST::StructPattern (std::move (path), std::move (elems))); + new AST::StructPattern (std::move (path), t->get_locus (), + std::move (elems))); } default: // assume path in expression @@ -11057,7 +11058,8 @@ Parser<ManagedTokenSource>::parse_ident_leading_pattern () rust_debug ("successfully parsed struct pattern"); return std::unique_ptr<AST::StructPattern> ( - new AST::StructPattern (std::move (path), std::move (elems))); + new AST::StructPattern (std::move (path), initial_tok->get_locus (), + std::move (elems))); } case DOT_DOT_EQ: case ELLIPSIS: { |