*
* @param attrs The attributes on the item to derive
*/
-std::vector<AST::SimplePath>
+std::vector<std::reference_wrapper<AST::SimplePath>>
Attribute::get_traits_to_derive ()
{
- std::vector<AST::SimplePath> result;
+ std::vector<std::reference_wrapper<AST::SimplePath>> result;
auto &input = get_attr_input ();
switch (input.get_attr_input_type ())
{
case AST::AttrInput::META_ITEM: {
- auto meta = static_cast<AST::AttrInputMetaItemContainer &> (input);
+ auto &meta = static_cast<AST::AttrInputMetaItemContainer &> (input);
for (auto ¤t : meta.get_items ())
{
// HACK: Find a better way to achieve the downcast.
for (auto &to_derive : traits_to_derive)
{
auto maybe_builtin = MacroBuiltin::builtins.lookup (
- to_derive.as_string ());
+ to_derive.get ().as_string ());
if (MacroBuiltin::builtins.is_iter_ok (maybe_builtin))
{
auto new_item
for (auto &to_derive : traits_to_derive)
{
auto maybe_builtin = MacroBuiltin::builtins.lookup (
- to_derive.as_string ());
+ to_derive.get ().as_string ());
if (MacroBuiltin::builtins.is_iter_ok (maybe_builtin))
{
auto new_item