}
std::unique_ptr<GenericParam>
-Builder::new_type_param (TypeParam ¶m)
+Builder::new_type_param (
+ TypeParam ¶m, std::vector<std::unique_ptr<TypeParamBound>> extra_bounds)
{
location_t locus = param.get_locus ();
AST::AttrVec outer_attrs = param.get_outer_attrs ();
if (param.has_type ())
type = new_type (param.get_type ());
+ for (auto &&extra_bound : extra_bounds)
+ type_param_bounds.emplace_back (std::move (extra_bound));
+
for (const auto &b : param.get_type_param_bounds ())
{
switch (b->get_bound_type ())
static std::unique_ptr<GenericParam>
new_lifetime_param (LifetimeParam ¶m);
- static std::unique_ptr<GenericParam> new_type_param (TypeParam ¶m);
+ static std::unique_ptr<GenericParam> new_type_param (
+ TypeParam ¶m,
+ std::vector<std::unique_ptr<TypeParamBound>> extra_trait_bounds = {});
static Lifetime new_lifetime (const Lifetime &lifetime);