@@ -443,6 +443,8 @@ public:
// Returns whether the self-param has a valid lifetime.
bool has_lifetime () const { return !lifetime.is_error (); }
+ const Lifetime &get_lifetime () const { return lifetime; }
+
// Returns whether the self-param is in an error state.
bool is_error () const { return self_kind == ImplicitSelfKind::NONE; }
@@ -218,6 +218,10 @@ public:
std::string as_string () const;
std::vector<Lifetime> &get_lifetime_args () { return lifetime_args; }
+ const std::vector<Lifetime> &get_lifetime_args () const
+ {
+ return lifetime_args;
+ }
std::vector<std::unique_ptr<Type> > &get_type_args () { return type_args; }
@@ -572,7 +572,10 @@ public:
void accept_vis (HIRFullVisitor &vis) override;
- std::string get_name () const { return lifetime_name; }
+ WARN_UNUSED_RESULT const std::string &get_name () const
+ {
+ return lifetime_name;
+ }
AST::Lifetime::LifetimeType get_lifetime_type () const
{
@@ -662,6 +665,8 @@ public:
// Returns whether the lifetime param has any lifetime bounds.
bool has_lifetime_bounds () const { return !lifetime_bounds.empty (); }
+ std::vector<Lifetime> &get_lifetime_bounds () { return lifetime_bounds; }
+
// Returns whether the lifetime param has an outer attribute.
bool has_outer_attribute () const { return !outer_attr.is_empty (); }