aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/ast/rust-pattern.h6
-rw-r--r--gcc/rust/parse/rust-parse-impl.h6
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: {