gccrs: Add some reference getter
Visitor pattern requires a getter to children using a mutable reference. gcc/rust/ChangeLog: * ast/rust-ast.h: Add some missing mutable reference getters. * ast/rust-expr.h: Likewise. * ast/rust-item.h: Likewise. * ast/rust-path.h: Likewise. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
This commit is contained in:
parent
863174590a
commit
7065e2dbfe
4 changed files with 31 additions and 3 deletions
|
@ -1408,6 +1408,10 @@ class LifetimeParam : public GenericParam
|
|||
public:
|
||||
Lifetime get_lifetime () const { return lifetime; }
|
||||
|
||||
Lifetime &get_lifetime () { return lifetime; }
|
||||
|
||||
Attribute &get_outer_attribute () { return outer_attr; }
|
||||
|
||||
// Returns whether the lifetime param has any lifetime bounds.
|
||||
bool has_lifetime_bounds () const { return !lifetime_bounds.empty (); }
|
||||
|
||||
|
|
|
@ -226,6 +226,8 @@ public:
|
|||
|
||||
LiteralExpr get_literal () const { return lit_expr; }
|
||||
|
||||
LiteralExpr &get_literal () { return lit_expr; }
|
||||
|
||||
void accept_vis (ASTVisitor &vis) override;
|
||||
|
||||
bool check_cfg_predicate (const Session &session) const override;
|
||||
|
@ -256,8 +258,12 @@ public:
|
|||
|
||||
SimplePath get_path () const { return path; }
|
||||
|
||||
SimplePath &get_path () { return path; }
|
||||
|
||||
LiteralExpr get_literal () const { return lit; }
|
||||
|
||||
LiteralExpr &get_literal () { return lit; }
|
||||
|
||||
std::string as_string () const override
|
||||
{
|
||||
return path.as_string () + " = " + lit.as_string ();
|
||||
|
|
|
@ -77,6 +77,8 @@ public:
|
|||
// Returns whether the type param has an outer attribute.
|
||||
bool has_outer_attribute () const { return !outer_attr.is_empty (); }
|
||||
|
||||
Attribute &get_outer_attribute () { return outer_attr; }
|
||||
|
||||
TypeParam (Identifier type_representation, location_t locus = UNDEF_LOCATION,
|
||||
std::vector<std::unique_ptr<TypeParamBound>> type_param_bounds
|
||||
= std::vector<std::unique_ptr<TypeParamBound>> (),
|
||||
|
@ -472,6 +474,7 @@ public:
|
|||
bool get_is_mut () const { return is_mut; }
|
||||
|
||||
Lifetime get_lifetime () const { return lifetime; }
|
||||
Lifetime &get_lifetime () { return lifetime; }
|
||||
|
||||
NodeId get_node_id () const { return node_id; }
|
||||
|
||||
|
@ -915,7 +918,9 @@ public:
|
|||
|
||||
location_t get_locus () const override final { return locus; }
|
||||
|
||||
FunctionQualifiers get_qualifiers () { return qualifiers; }
|
||||
FunctionQualifiers get_qualifiers () const { return qualifiers; }
|
||||
|
||||
FunctionQualifiers &get_qualifiers () { return qualifiers; }
|
||||
|
||||
Visibility &get_visibility () { return vis; }
|
||||
const Visibility &get_visibility () const { return vis; }
|
||||
|
@ -1299,6 +1304,8 @@ public:
|
|||
return path;
|
||||
}
|
||||
|
||||
SimplePath &get_path () { return path; }
|
||||
|
||||
/* TODO: find way to ensure only PATH_PREFIXED glob_type has path - factory
|
||||
* methods? */
|
||||
protected:
|
||||
|
@ -1389,6 +1396,8 @@ public:
|
|||
return path;
|
||||
}
|
||||
|
||||
SimplePath &get_path () { return path; }
|
||||
|
||||
std::vector<std::unique_ptr<UseTree>> &get_trees () { return trees; }
|
||||
|
||||
const std::vector<std::unique_ptr<UseTree>> &get_trees () const
|
||||
|
@ -1451,6 +1460,8 @@ public:
|
|||
return path;
|
||||
}
|
||||
|
||||
SimplePath &get_path () { return path; }
|
||||
|
||||
const Identifier &get_identifier () const
|
||||
{
|
||||
rust_assert (has_identifier ());
|
||||
|
@ -1677,6 +1688,8 @@ public:
|
|||
|
||||
const FunctionQualifiers &get_qualifiers () const { return qualifiers; }
|
||||
|
||||
FunctionQualifiers &get_qualifiers () { return qualifiers; }
|
||||
|
||||
Identifier get_function_name () const { return function_name; }
|
||||
|
||||
// TODO: is this better? Or is a "vis_block" better?
|
||||
|
@ -2921,7 +2934,8 @@ public:
|
|||
// TODO: is this better? Or is a "vis_block" better?
|
||||
WhereClause &get_where_clause () { return where_clause; }
|
||||
|
||||
FunctionQualifiers get_qualifiers () { return qualifiers; }
|
||||
FunctionQualifiers get_qualifiers () const { return qualifiers; }
|
||||
FunctionQualifiers &get_qualifiers () { return qualifiers; }
|
||||
};
|
||||
|
||||
// Actual trait item function declaration within traits
|
||||
|
@ -3137,7 +3151,9 @@ public:
|
|||
SelfParam &get_self_param () { return self_param; }
|
||||
const SelfParam &get_self_param () const { return self_param; }
|
||||
|
||||
FunctionQualifiers get_qualifiers () { return qualifiers; }
|
||||
FunctionQualifiers get_qualifiers () const { return qualifiers; }
|
||||
|
||||
FunctionQualifiers &get_qualifiers () { return qualifiers; }
|
||||
};
|
||||
|
||||
// Actual trait item method declaration within traits
|
||||
|
|
|
@ -350,6 +350,8 @@ public:
|
|||
|
||||
const Identifier &get_name () const { return name; }
|
||||
|
||||
Attribute &get_outer_attribute () { return outer_attr; }
|
||||
|
||||
std::unique_ptr<AST::Type> &get_type ()
|
||||
{
|
||||
rust_assert (has_type ());
|
||||
|
|
Loading…
Add table
Reference in a new issue