aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/ast/rust-item.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/ast/rust-item.h')
-rw-r--r--gcc/rust/ast/rust-item.h349
1 files changed, 170 insertions, 179 deletions
diff --git a/gcc/rust/ast/rust-item.h b/gcc/rust/ast/rust-item.h
index 6b0021a..32fb56f 100644
--- a/gcc/rust/ast/rust-item.h
+++ b/gcc/rust/ast/rust-item.h
@@ -57,7 +57,7 @@ class TypeParam : public GenericParam
// bool has_type_param_bounds;
// TypeParamBounds type_param_bounds;
- std::vector<std::unique_ptr<TypeParamBound> >
+ std::vector<std::unique_ptr<TypeParamBound>>
type_param_bounds; // inlined form
// bool has_type;
@@ -78,8 +78,8 @@ public:
bool has_outer_attribute () const { return !outer_attr.is_empty (); }
TypeParam (Identifier type_representation, Location locus = Location (),
- std::vector<std::unique_ptr<TypeParamBound> > type_param_bounds
- = std::vector<std::unique_ptr<TypeParamBound> > (),
+ std::vector<std::unique_ptr<TypeParamBound>> type_param_bounds
+ = std::vector<std::unique_ptr<TypeParamBound>> (),
std::unique_ptr<Type> type = nullptr,
Attribute outer_attr = Attribute::create_empty ())
: GenericParam (Analysis::Mappings::get ()->get_next_node_id ()),
@@ -144,11 +144,11 @@ public:
}
// TODO: mutable getter seems kinda dodgy
- std::vector<std::unique_ptr<TypeParamBound> > &get_type_param_bounds ()
+ std::vector<std::unique_ptr<TypeParamBound>> &get_type_param_bounds ()
{
return type_param_bounds;
}
- const std::vector<std::unique_ptr<TypeParamBound> > &
+ const std::vector<std::unique_ptr<TypeParamBound>> &
get_type_param_bounds () const
{
return type_param_bounds;
@@ -224,7 +224,7 @@ class TypeBoundWhereClauseItem : public WhereClauseItem
// bool has_type_param_bounds;
// TypeParamBounds type_param_bounds;
- std::vector<std::unique_ptr<TypeParamBound> >
+ std::vector<std::unique_ptr<TypeParamBound>>
type_param_bounds; // inlined form
// should this store location info?
@@ -238,7 +238,7 @@ public:
TypeBoundWhereClauseItem (
std::vector<LifetimeParam> for_lifetimes, std::unique_ptr<Type> bound_type,
- std::vector<std::unique_ptr<TypeParamBound> > type_param_bounds)
+ std::vector<std::unique_ptr<TypeParamBound>> type_param_bounds)
: for_lifetimes (std::move (for_lifetimes)),
bound_type (std::move (bound_type)),
type_param_bounds (std::move (type_param_bounds))
@@ -284,11 +284,11 @@ public:
}
// TODO: this mutable getter seems really dodgy. Think up better way.
- std::vector<std::unique_ptr<TypeParamBound> > &get_type_param_bounds ()
+ std::vector<std::unique_ptr<TypeParamBound>> &get_type_param_bounds ()
{
return type_param_bounds;
}
- const std::vector<std::unique_ptr<TypeParamBound> > &
+ const std::vector<std::unique_ptr<TypeParamBound>> &
get_type_param_bounds () const
{
return type_param_bounds;
@@ -306,13 +306,12 @@ protected:
struct WhereClause
{
private:
- std::vector<std::unique_ptr<WhereClauseItem> > where_clause_items;
+ std::vector<std::unique_ptr<WhereClauseItem>> where_clause_items;
// should this store location info?
public:
- WhereClause (
- std::vector<std::unique_ptr<WhereClauseItem> > where_clause_items)
+ WhereClause (std::vector<std::unique_ptr<WhereClauseItem>> where_clause_items)
: where_clause_items (std::move (where_clause_items))
{}
@@ -341,7 +340,7 @@ public:
// Creates a WhereClause with no items.
static WhereClause create_empty ()
{
- return WhereClause (std::vector<std::unique_ptr<WhereClauseItem> > ());
+ return WhereClause (std::vector<std::unique_ptr<WhereClauseItem>> ());
}
// Returns whether the WhereClause has no items.
@@ -350,11 +349,11 @@ public:
std::string as_string () const;
// TODO: this mutable getter seems kinda dodgy
- std::vector<std::unique_ptr<WhereClauseItem> > &get_items ()
+ std::vector<std::unique_ptr<WhereClauseItem>> &get_items ()
{
return where_clause_items;
}
- const std::vector<std::unique_ptr<WhereClauseItem> > &get_items () const
+ const std::vector<std::unique_ptr<WhereClauseItem>> &get_items () const
{
return where_clause_items;
}
@@ -698,7 +697,7 @@ class Method : public InherentImplItem, public TraitImplItem
// bool has_generics;
// Generics generic_params;
- std::vector<std::unique_ptr<GenericParam> > generic_params; // inlined
+ std::vector<std::unique_ptr<GenericParam>> generic_params; // inlined
SelfParam self_param;
@@ -731,7 +730,7 @@ public:
static Method create_error ()
{
return Method ("", FunctionQualifiers (FunctionQualifiers::NONE, true),
- std::vector<std::unique_ptr<GenericParam> > (),
+ std::vector<std::unique_ptr<GenericParam>> (),
SelfParam::create_error (), std::vector<FunctionParam> (),
nullptr, WhereClause::create_empty (), nullptr,
Visibility::create_error (), std::vector<Attribute> (), {});
@@ -754,7 +753,7 @@ public:
// Mega-constructor with all possible fields
Method (Identifier method_name, FunctionQualifiers qualifiers,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
SelfParam self_param, std::vector<FunctionParam> function_params,
std::unique_ptr<Type> return_type, WhereClause where_clause,
std::unique_ptr<BlockExpr> function_body, Visibility vis,
@@ -853,11 +852,11 @@ public:
return function_params;
}
- std::vector<std::unique_ptr<GenericParam> > &get_generic_params ()
+ std::vector<std::unique_ptr<GenericParam>> &get_generic_params ()
{
return generic_params;
}
- const std::vector<std::unique_ptr<GenericParam> > &get_generic_params () const
+ const std::vector<std::unique_ptr<GenericParam>> &get_generic_params () const
{
return generic_params;
}
@@ -961,134 +960,127 @@ public:
// Rust module item - abstract base class
class Module : public VisItem
{
- Identifier module_name;
- Location locus;
-
-protected:
- // Protected constructor
- Module (Identifier module_name, Visibility visibility, Location locus,
- std::vector<Attribute> outer_attrs = std::vector<Attribute> ())
- : VisItem (std::move (visibility), std::move (outer_attrs)),
- module_name (module_name), locus (locus)
- {}
-
public:
- std::string as_string () const override;
-
- Location get_locus () const { return locus; }
+ // Type of the current module. A module can be either loaded or unloaded,
+ // meaning that the items of the module can already be present or not. For
+ // example, the following module would be loaded: `mod foo { fn bar() {} }`.
+ // However, the module would be unloaded if it refers to an external file (i.e
+ // `mod foo;`) and then become loaded upon expansion.
+ enum ModuleKind
+ {
+ LOADED,
+ UNLOADED,
+ };
- // Invalid if name is empty, so base stripping on that.
- void mark_for_strip () override { module_name = ""; }
- bool is_marked_for_strip () const override { return module_name.empty (); }
-};
+private:
+ Identifier module_name;
+ Location locus;
+ ModuleKind kind;
-// Module with a body, defined in file
-class ModuleBodied : public Module
-{
// bool has_inner_attrs;
std::vector<Attribute> inner_attrs;
// bool has_items;
- std::vector<std::unique_ptr<Item> > items;
+ std::vector<std::unique_ptr<Item>> items;
-public:
- std::string as_string () const override;
+ void clone_items (const std::vector<std::unique_ptr<Item>> &other_items)
+ {
+ items.reserve (other_items.size ());
+ for (const auto &e : other_items)
+ items.push_back (e->clone_item ());
+ }
+public:
// Returns whether the module has items in its body.
bool has_items () const { return !items.empty (); }
// Returns whether the module has any inner attributes.
bool has_inner_attrs () const { return !inner_attrs.empty (); }
- // Full constructor
- ModuleBodied (Identifier name, Location locus,
- std::vector<std::unique_ptr<Item> > items
- = std::vector<std::unique_ptr<Item> > (),
- Visibility visibility = Visibility::create_error (),
- std::vector<Attribute> inner_attrs = std::vector<Attribute> (),
- std::vector<Attribute> outer_attrs = std::vector<Attribute> ())
- : Module (std::move (name), std::move (visibility), locus,
- std::move (outer_attrs)),
+ // Unloaded module constructor
+ Module (Identifier module_name, Visibility visibility,
+ std::vector<Attribute> outer_attrs, Location locus)
+ : VisItem (std::move (visibility), std::move (outer_attrs)),
+ module_name (module_name), locus (locus), kind (ModuleKind::UNLOADED),
+ inner_attrs (std::vector<Attribute> ()),
+ items (std::vector<std::unique_ptr<Item>> ())
+ {}
+
+ // Loaded module constructor, with items
+ Module (Identifier name, Location locus,
+ std::vector<std::unique_ptr<Item>> items,
+ Visibility visibility = Visibility::create_error (),
+ std::vector<Attribute> inner_attrs = std::vector<Attribute> (),
+ std::vector<Attribute> outer_attrs = std::vector<Attribute> ())
+ : VisItem (std::move (visibility), std::move (outer_attrs)),
+ module_name (name), locus (locus), kind (ModuleKind::LOADED),
inner_attrs (std::move (inner_attrs)), items (std::move (items))
{}
// Copy constructor with vector clone
- ModuleBodied (ModuleBodied const &other)
- : Module (other), inner_attrs (other.inner_attrs)
- {
- items.reserve (other.items.size ());
- for (const auto &e : other.items)
- items.push_back (e->clone_item ());
+ Module (Module const &other)
+ : VisItem (other), module_name (other.module_name), locus (other.locus),
+ kind (other.kind), inner_attrs (other.inner_attrs)
+ {
+ // We need to check whether we are copying a loaded module or an unloaded
+ // one. In the second case, clear the `items` vector.
+ if (other.kind == LOADED)
+ clone_items (other.items);
+ else
+ items.clear ();
}
// Overloaded assignment operator with vector clone
- ModuleBodied &operator= (ModuleBodied const &other)
+ Module &operator= (Module const &other)
{
- Module::operator= (other);
+ VisItem::operator= (other);
+
+ module_name = other.module_name;
+ locus = other.locus;
+ kind = other.kind;
inner_attrs = other.inner_attrs;
- items.reserve (other.items.size ());
- for (const auto &e : other.items)
- items.push_back (e->clone_item ());
+ // Likewise, we need to clear the `items` vector in case the other module is
+ // unloaded
+ if (kind == LOADED)
+ clone_items (other.items);
+ else
+ items.clear ();
return *this;
}
- // move constructors
- ModuleBodied (ModuleBodied &&other) = default;
- ModuleBodied &operator= (ModuleBodied &&other) = default;
-
void accept_vis (ASTVisitor &vis) override;
/* Override that runs the function recursively on all items contained within
* the module. */
void add_crate_name (std::vector<std::string> &names) const override;
+ // Returns the kind of the module
+ enum ModuleKind get_kind () const { return kind; }
+
// TODO: think of better way to do this - mutable getter seems dodgy
const std::vector<Attribute> &get_inner_attrs () const { return inner_attrs; }
std::vector<Attribute> &get_inner_attrs () { return inner_attrs; }
- const std::vector<std::unique_ptr<Item> > &get_items () const
- {
- return items;
- }
- std::vector<std::unique_ptr<Item> > &get_items () { return items; }
+ const std::vector<std::unique_ptr<Item>> &get_items () const { return items; }
+ std::vector<std::unique_ptr<Item>> &get_items () { return items; }
-protected:
- /* Use covariance to implement clone function as returning this object
- * rather than base */
- ModuleBodied *clone_item_impl () const override
- {
- return new ModuleBodied (*this);
- }
-};
+ // move constructors
+ Module (Module &&other) = default;
+ Module &operator= (Module &&other) = default;
-// Module without a body, loaded from external file
-class ModuleNoBody : public Module
-{
- /* TODO: are modules loaded from file unique? As in, can you load the same
- * file into two different other files? Because this may make the difference
- * between simply replacing this with the module
- * "definition" (as loaded from another file) vs this having to "reference" a
- * module with body. */
-public:
std::string as_string () const override;
- // Full constructor
- ModuleNoBody (Identifier name, Visibility visibility,
- std::vector<Attribute> outer_attrs, Location locus)
- : Module (std::move (name), std::move (visibility), locus,
- std::move (outer_attrs))
- {}
+ Location get_locus () const { return locus; }
- void accept_vis (ASTVisitor &vis) override;
+ // Invalid if name is empty, so base stripping on that.
+ void mark_for_strip () override { module_name = ""; }
+ bool is_marked_for_strip () const override { return module_name.empty (); }
protected:
/* Use covariance to implement clone function as returning this object
* rather than base */
- ModuleNoBody *clone_item_impl () const override
- {
- return new ModuleNoBody (*this);
- }
+ Module *clone_item_impl () const override { return new Module (*this); }
};
// Rust extern crate declaration AST node
@@ -1242,11 +1234,11 @@ private:
PathType path_type;
SimplePath path;
- std::vector<std::unique_ptr<UseTree> > trees;
+ std::vector<std::unique_ptr<UseTree>> trees;
public:
UseTreeList (PathType path_type, SimplePath path,
- std::vector<std::unique_ptr<UseTree> > trees, Location locus)
+ std::vector<std::unique_ptr<UseTree>> trees, Location locus)
: UseTree (locus), path_type (path_type), path (std::move (path)),
trees (std::move (trees))
{
@@ -1430,7 +1422,7 @@ class Function : public VisItem, public InherentImplItem, public TraitImplItem
// bool has_generics;
// Generics generic_params;
- std::vector<std::unique_ptr<GenericParam> > generic_params; // inlined
+ std::vector<std::unique_ptr<GenericParam>> generic_params; // inlined
// bool has_function_params;
// FunctionParams function_params;
@@ -1463,7 +1455,7 @@ public:
// Mega-constructor with all possible fields
Function (Identifier function_name, FunctionQualifiers qualifiers,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
std::vector<FunctionParam> function_params,
std::unique_ptr<Type> return_type, WhereClause where_clause,
std::unique_ptr<BlockExpr> function_body, Visibility vis,
@@ -1554,11 +1546,11 @@ public:
return function_params;
}
- std::vector<std::unique_ptr<GenericParam> > &get_generic_params ()
+ std::vector<std::unique_ptr<GenericParam>> &get_generic_params ()
{
return generic_params;
}
- const std::vector<std::unique_ptr<GenericParam> > &get_generic_params () const
+ const std::vector<std::unique_ptr<GenericParam>> &get_generic_params () const
{
return generic_params;
}
@@ -1615,7 +1607,7 @@ class TypeAlias : public VisItem, public TraitImplItem
// bool has_generics;
// Generics generic_params;
- std::vector<std::unique_ptr<GenericParam> > generic_params; // inlined
+ std::vector<std::unique_ptr<GenericParam>> generic_params; // inlined
// bool has_where_clause;
WhereClause where_clause;
@@ -1635,7 +1627,7 @@ public:
// Mega-constructor with all possible fields
TypeAlias (Identifier new_type_name,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
WhereClause where_clause, std::unique_ptr<Type> existing_type,
Visibility vis, std::vector<Attribute> outer_attrs, Location locus)
: VisItem (std::move (vis), std::move (outer_attrs)),
@@ -1697,11 +1689,11 @@ public:
return existing_type == nullptr;
}
- std::vector<std::unique_ptr<GenericParam> > &get_generic_params ()
+ std::vector<std::unique_ptr<GenericParam>> &get_generic_params ()
{
return generic_params;
}
- const std::vector<std::unique_ptr<GenericParam> > &get_generic_params () const
+ const std::vector<std::unique_ptr<GenericParam>> &get_generic_params () const
{
return generic_params;
}
@@ -1744,7 +1736,7 @@ protected:
// bool has_generics;
// Generics generic_params;
- std::vector<std::unique_ptr<GenericParam> > generic_params; // inlined
+ std::vector<std::unique_ptr<GenericParam>> generic_params; // inlined
// bool has_where_clause;
WhereClause where_clause;
@@ -1769,11 +1761,11 @@ public:
Identifier get_struct_name () const { return struct_name; }
- std::vector<std::unique_ptr<GenericParam> > &get_generic_params ()
+ std::vector<std::unique_ptr<GenericParam>> &get_generic_params ()
{
return generic_params;
}
- const std::vector<std::unique_ptr<GenericParam> > &get_generic_params () const
+ const std::vector<std::unique_ptr<GenericParam>> &get_generic_params () const
{
return generic_params;
}
@@ -1789,7 +1781,7 @@ public:
protected:
Struct (Identifier struct_name,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
WhereClause where_clause, Visibility vis, Location locus,
std::vector<Attribute> outer_attrs = std::vector<Attribute> ())
: VisItem (std::move (vis), std::move (outer_attrs)),
@@ -1941,7 +1933,7 @@ public:
// Mega-constructor with all possible fields
StructStruct (std::vector<StructField> fields, Identifier struct_name,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
WhereClause where_clause, bool is_unit, Visibility vis,
std::vector<Attribute> outer_attrs, Location locus)
: Struct (std::move (struct_name), std::move (generic_params),
@@ -1952,7 +1944,7 @@ public:
// Unit struct constructor
StructStruct (Identifier struct_name,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
WhereClause where_clause, Visibility vis,
std::vector<Attribute> outer_attrs, Location locus)
: Struct (std::move (struct_name), std::move (generic_params),
@@ -2092,7 +2084,7 @@ public:
// Mega-constructor with all possible fields
TupleStruct (std::vector<TupleField> fields, Identifier struct_name,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
WhereClause where_clause, Visibility vis,
std::vector<Attribute> outer_attrs, Location locus)
: Struct (std::move (struct_name), std::move (generic_params),
@@ -2304,12 +2296,12 @@ class Enum : public VisItem
// bool has_generics;
// Generics generic_params;
- std::vector<std::unique_ptr<GenericParam> > generic_params; // inlined
+ std::vector<std::unique_ptr<GenericParam>> generic_params; // inlined
// bool has_where_clause;
WhereClause where_clause;
- std::vector<std::unique_ptr<EnumItem> > items;
+ std::vector<std::unique_ptr<EnumItem>> items;
Location locus;
@@ -2328,8 +2320,8 @@ public:
// Mega-constructor
Enum (Identifier enum_name, Visibility vis,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
- WhereClause where_clause, std::vector<std::unique_ptr<EnumItem> > items,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
+ WhereClause where_clause, std::vector<std::unique_ptr<EnumItem>> items,
std::vector<Attribute> outer_attrs, Location locus)
: VisItem (std::move (vis), std::move (outer_attrs)),
enum_name (std::move (enum_name)),
@@ -2386,17 +2378,17 @@ public:
bool is_marked_for_strip () const override { return enum_name.empty (); }
// TODO: this mutable getter seems really dodgy. Think up better way.
- std::vector<std::unique_ptr<EnumItem> > &get_variants () { return items; }
- const std::vector<std::unique_ptr<EnumItem> > &get_variants () const
+ std::vector<std::unique_ptr<EnumItem>> &get_variants () { return items; }
+ const std::vector<std::unique_ptr<EnumItem>> &get_variants () const
{
return items;
}
- std::vector<std::unique_ptr<GenericParam> > &get_generic_params ()
+ std::vector<std::unique_ptr<GenericParam>> &get_generic_params ()
{
return generic_params;
}
- const std::vector<std::unique_ptr<GenericParam> > &get_generic_params () const
+ const std::vector<std::unique_ptr<GenericParam>> &get_generic_params () const
{
return generic_params;
}
@@ -2421,7 +2413,7 @@ class Union : public VisItem
// bool has_generics;
// Generics generic_params;
- std::vector<std::unique_ptr<GenericParam> > generic_params; // inlined
+ std::vector<std::unique_ptr<GenericParam>> generic_params; // inlined
// bool has_where_clause;
WhereClause where_clause;
@@ -2440,7 +2432,7 @@ public:
bool has_where_clause () const { return !where_clause.is_empty (); }
Union (Identifier union_name, Visibility vis,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
WhereClause where_clause, std::vector<StructField> variants,
std::vector<Attribute> outer_attrs, Location locus)
: VisItem (std::move (vis), std::move (outer_attrs)),
@@ -2502,11 +2494,11 @@ public:
}
}
- std::vector<std::unique_ptr<GenericParam> > &get_generic_params ()
+ std::vector<std::unique_ptr<GenericParam>> &get_generic_params ()
{
return generic_params;
}
- const std::vector<std::unique_ptr<GenericParam> > &get_generic_params () const
+ const std::vector<std::unique_ptr<GenericParam>> &get_generic_params () const
{
return generic_params;
}
@@ -2757,7 +2749,7 @@ private:
// bool has_generics;
// Generics generic_params;
- std::vector<std::unique_ptr<GenericParam> > generic_params; // inlined
+ std::vector<std::unique_ptr<GenericParam>> generic_params; // inlined
// bool has_params;
// FunctionParams function_params;
@@ -2788,7 +2780,7 @@ public:
// Mega-constructor
TraitFunctionDecl (Identifier function_name, FunctionQualifiers qualifiers,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
std::vector<FunctionParam> function_params,
std::unique_ptr<Type> return_type,
WhereClause where_clause)
@@ -2854,11 +2846,11 @@ public:
return function_params;
}
- std::vector<std::unique_ptr<GenericParam> > &get_generic_params ()
+ std::vector<std::unique_ptr<GenericParam>> &get_generic_params ()
{
return generic_params;
}
- const std::vector<std::unique_ptr<GenericParam> > &get_generic_params () const
+ const std::vector<std::unique_ptr<GenericParam>> &get_generic_params () const
{
return generic_params;
}
@@ -2979,7 +2971,7 @@ private:
// bool has_generics;
// Generics generic_params;
- std::vector<std::unique_ptr<GenericParam> > generic_params; // inlined
+ std::vector<std::unique_ptr<GenericParam>> generic_params; // inlined
SelfParam self_param;
@@ -3012,7 +3004,7 @@ public:
// Mega-constructor
TraitMethodDecl (Identifier function_name, FunctionQualifiers qualifiers,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
SelfParam self_param,
std::vector<FunctionParam> function_params,
std::unique_ptr<Type> return_type, WhereClause where_clause)
@@ -3081,11 +3073,11 @@ public:
return function_params;
}
- std::vector<std::unique_ptr<GenericParam> > &get_generic_params ()
+ std::vector<std::unique_ptr<GenericParam>> &get_generic_params ()
{
return generic_params;
}
- const std::vector<std::unique_ptr<GenericParam> > &get_generic_params () const
+ const std::vector<std::unique_ptr<GenericParam>> &get_generic_params () const
{
return generic_params;
}
@@ -3315,7 +3307,7 @@ class TraitItemType : public TraitItem
// bool has_type_param_bounds;
// TypeParamBounds type_param_bounds;
- std::vector<std::unique_ptr<TypeParamBound> >
+ std::vector<std::unique_ptr<TypeParamBound>>
type_param_bounds; // inlined form
Location locus;
@@ -3324,10 +3316,9 @@ public:
// Returns whether trait item type has type param bounds.
bool has_type_param_bounds () const { return !type_param_bounds.empty (); }
- TraitItemType (
- Identifier name,
- std::vector<std::unique_ptr<TypeParamBound> > type_param_bounds,
- std::vector<Attribute> outer_attrs, Location locus)
+ TraitItemType (Identifier name,
+ std::vector<std::unique_ptr<TypeParamBound>> type_param_bounds,
+ std::vector<Attribute> outer_attrs, Location locus)
: TraitItem (), outer_attrs (std::move (outer_attrs)),
name (std::move (name)),
type_param_bounds (std::move (type_param_bounds)), locus (locus)
@@ -3378,11 +3369,11 @@ public:
const std::vector<Attribute> &get_outer_attrs () const { return outer_attrs; }
// TODO: mutable getter seems kinda dodgy
- std::vector<std::unique_ptr<TypeParamBound> > &get_type_param_bounds ()
+ std::vector<std::unique_ptr<TypeParamBound>> &get_type_param_bounds ()
{
return type_param_bounds;
}
- const std::vector<std::unique_ptr<TypeParamBound> > &
+ const std::vector<std::unique_ptr<TypeParamBound>> &
get_type_param_bounds () const
{
return type_param_bounds;
@@ -3403,11 +3394,11 @@ class Trait : public VisItem
{
bool has_unsafe;
Identifier name;
- std::vector<std::unique_ptr<GenericParam> > generic_params;
- std::vector<std::unique_ptr<TypeParamBound> > type_param_bounds;
+ std::vector<std::unique_ptr<GenericParam>> generic_params;
+ std::vector<std::unique_ptr<TypeParamBound>> type_param_bounds;
WhereClause where_clause;
std::vector<Attribute> inner_attrs;
- std::vector<std::unique_ptr<TraitItem> > trait_items;
+ std::vector<std::unique_ptr<TraitItem>> trait_items;
Location locus;
public:
@@ -3434,10 +3425,10 @@ public:
// Mega-constructor
Trait (Identifier name, bool is_unsafe,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
- std::vector<std::unique_ptr<TypeParamBound> > type_param_bounds,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
+ std::vector<std::unique_ptr<TypeParamBound>> type_param_bounds,
WhereClause where_clause,
- std::vector<std::unique_ptr<TraitItem> > trait_items, Visibility vis,
+ std::vector<std::unique_ptr<TraitItem>> trait_items, Visibility vis,
std::vector<Attribute> outer_attrs, std::vector<Attribute> inner_attrs,
Location locus)
: VisItem (std::move (vis), std::move (outer_attrs)),
@@ -3509,29 +3500,29 @@ public:
const std::vector<Attribute> &get_inner_attrs () const { return inner_attrs; }
std::vector<Attribute> &get_inner_attrs () { return inner_attrs; }
- const std::vector<std::unique_ptr<TraitItem> > &get_trait_items () const
+ const std::vector<std::unique_ptr<TraitItem>> &get_trait_items () const
{
return trait_items;
}
- std::vector<std::unique_ptr<TraitItem> > &get_trait_items ()
+ std::vector<std::unique_ptr<TraitItem>> &get_trait_items ()
{
return trait_items;
}
- std::vector<std::unique_ptr<GenericParam> > &get_generic_params ()
+ std::vector<std::unique_ptr<GenericParam>> &get_generic_params ()
{
return generic_params;
}
- const std::vector<std::unique_ptr<GenericParam> > &get_generic_params () const
+ const std::vector<std::unique_ptr<GenericParam>> &get_generic_params () const
{
return generic_params;
}
- std::vector<std::unique_ptr<TypeParamBound> > &get_type_param_bounds ()
+ std::vector<std::unique_ptr<TypeParamBound>> &get_type_param_bounds ()
{
return type_param_bounds;
}
- const std::vector<std::unique_ptr<TypeParamBound> > &
+ const std::vector<std::unique_ptr<TypeParamBound>> &
get_type_param_bounds () const
{
return type_param_bounds;
@@ -3561,7 +3552,7 @@ class Impl : public VisItem
protected:
// bool has_generics;
// Generics generic_params;
- std::vector<std::unique_ptr<GenericParam> > generic_params; // inlined
+ std::vector<std::unique_ptr<GenericParam>> generic_params; // inlined
std::unique_ptr<Type> trait_type;
@@ -3595,11 +3586,11 @@ public:
const std::vector<Attribute> &get_inner_attrs () const { return inner_attrs; }
std::vector<Attribute> &get_inner_attrs () { return inner_attrs; }
- std::vector<std::unique_ptr<GenericParam> > &get_generic_params ()
+ std::vector<std::unique_ptr<GenericParam>> &get_generic_params ()
{
return generic_params;
}
- const std::vector<std::unique_ptr<GenericParam> > &get_generic_params () const
+ const std::vector<std::unique_ptr<GenericParam>> &get_generic_params () const
{
return generic_params;
}
@@ -3620,7 +3611,7 @@ public:
protected:
// Mega-constructor
- Impl (std::vector<std::unique_ptr<GenericParam> > generic_params,
+ Impl (std::vector<std::unique_ptr<GenericParam>> generic_params,
std::unique_ptr<Type> trait_type, WhereClause where_clause,
Visibility vis, std::vector<Attribute> inner_attrs,
std::vector<Attribute> outer_attrs, Location locus)
@@ -3675,7 +3666,7 @@ protected:
class InherentImpl : public Impl
{
// bool has_impl_items;
- std::vector<std::unique_ptr<InherentImplItem> > impl_items;
+ std::vector<std::unique_ptr<InherentImplItem>> impl_items;
public:
std::string as_string () const override;
@@ -3684,8 +3675,8 @@ public:
bool has_impl_items () const { return !impl_items.empty (); }
// Mega-constructor
- InherentImpl (std::vector<std::unique_ptr<InherentImplItem> > impl_items,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ InherentImpl (std::vector<std::unique_ptr<InherentImplItem>> impl_items,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
std::unique_ptr<Type> trait_type, WhereClause where_clause,
Visibility vis, std::vector<Attribute> inner_attrs,
std::vector<Attribute> outer_attrs, Location locus)
@@ -3722,11 +3713,11 @@ public:
void accept_vis (ASTVisitor &vis) override;
// TODO: think of better way to do this
- const std::vector<std::unique_ptr<InherentImplItem> > &get_impl_items () const
+ const std::vector<std::unique_ptr<InherentImplItem>> &get_impl_items () const
{
return impl_items;
}
- std::vector<std::unique_ptr<InherentImplItem> > &get_impl_items ()
+ std::vector<std::unique_ptr<InherentImplItem>> &get_impl_items ()
{
return impl_items;
}
@@ -3748,7 +3739,7 @@ class TraitImpl : public Impl
TypePath trait_path;
// bool has_impl_items;
- std::vector<std::unique_ptr<TraitImplItem> > impl_items;
+ std::vector<std::unique_ptr<TraitImplItem>> impl_items;
public:
std::string as_string () const override;
@@ -3758,8 +3749,8 @@ public:
// Mega-constructor
TraitImpl (TypePath trait_path, bool is_unsafe, bool has_exclam,
- std::vector<std::unique_ptr<TraitImplItem> > impl_items,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ std::vector<std::unique_ptr<TraitImplItem>> impl_items,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
std::unique_ptr<Type> trait_type, WhereClause where_clause,
Visibility vis, std::vector<Attribute> inner_attrs,
std::vector<Attribute> outer_attrs, Location locus)
@@ -3805,11 +3796,11 @@ public:
bool is_exclam () const { return has_exclam; }
// TODO: think of better way to do this
- const std::vector<std::unique_ptr<TraitImplItem> > &get_impl_items () const
+ const std::vector<std::unique_ptr<TraitImplItem>> &get_impl_items () const
{
return impl_items;
}
- std::vector<std::unique_ptr<TraitImplItem> > &get_impl_items ()
+ std::vector<std::unique_ptr<TraitImplItem>> &get_impl_items ()
{
return impl_items;
}
@@ -4116,7 +4107,7 @@ class ExternalFunctionItem : public ExternalItem
// bool has_generics;
// Generics generic_params;
- std::vector<std::unique_ptr<GenericParam> > generic_params; // inlined
+ std::vector<std::unique_ptr<GenericParam>> generic_params; // inlined
// bool has_return_type;
// FunctionReturnType return_type;
@@ -4158,7 +4149,7 @@ public:
ExternalFunctionItem (
Identifier item_name,
- std::vector<std::unique_ptr<GenericParam> > generic_params,
+ std::vector<std::unique_ptr<GenericParam>> generic_params,
std::unique_ptr<Type> return_type, WhereClause where_clause,
std::vector<NamedFunctionParam> function_params, bool has_variadics,
std::vector<Attribute> variadic_outer_attrs, Visibility vis,
@@ -4246,11 +4237,11 @@ public:
return function_params;
}
- std::vector<std::unique_ptr<GenericParam> > &get_generic_params ()
+ std::vector<std::unique_ptr<GenericParam>> &get_generic_params ()
{
return generic_params;
}
- const std::vector<std::unique_ptr<GenericParam> > &get_generic_params () const
+ const std::vector<std::unique_ptr<GenericParam>> &get_generic_params () const
{
return generic_params;
}
@@ -4290,7 +4281,7 @@ class ExternBlock : public VisItem
std::vector<Attribute> inner_attrs;
// bool has_extern_items;
- std::vector<std::unique_ptr<ExternalItem> > extern_items;
+ std::vector<std::unique_ptr<ExternalItem>> extern_items;
Location locus;
@@ -4312,7 +4303,7 @@ public:
std::string get_abi () const { return abi; }
ExternBlock (std::string abi,
- std::vector<std::unique_ptr<ExternalItem> > extern_items,
+ std::vector<std::unique_ptr<ExternalItem>> extern_items,
Visibility vis, std::vector<Attribute> inner_attrs,
std::vector<Attribute> outer_attrs, Location locus)
: VisItem (std::move (vis), std::move (outer_attrs)), abi (std::move (abi)),
@@ -4359,11 +4350,11 @@ public:
bool is_marked_for_strip () const override { return marked_for_strip; }
// TODO: think of better way to do this
- const std::vector<std::unique_ptr<ExternalItem> > &get_extern_items () const
+ const std::vector<std::unique_ptr<ExternalItem>> &get_extern_items () const
{
return extern_items;
}
- std::vector<std::unique_ptr<ExternalItem> > &get_extern_items ()
+ std::vector<std::unique_ptr<ExternalItem>> &get_extern_items ()
{
return extern_items;
}