Changeset 2345ab3 for src/AST


Ignore:
Timestamp:
Dec 5, 2023, 11:13:59 AM (13 months ago)
Author:
Andrew Beach <ajbeach@…>
Branches:
master
Children:
1c85ffc
Parents:
e274264
Message:

Clean-up of the chain mutator. Seems like it is underused.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Chain.hpp

    re274264 r2345ab3  
    3333        template<typename actual_node_t, typename child_t>
    3434        auto operator()( child_t actual_node_t::*child ) {
    35                 auto n = mutate(base.get());
     35                node_t * n = base.get_and_mutate();
    3636                actual_node_t * node = strict_dynamic_cast<actual_node_t *>(n);
    37                 base = node;
    3837                return _chain_mutator< typename std::remove_reference< decltype(node->*child) >::type >{node->*child};
    3938        }
    4039
    4140        node_t * operator->() {
    42                 auto n = mutate(base.get());
    43                 base = n;
    44                 return n;
     41                return base.get_and_mutate();
    4542        }
    4643};
Note: See TracChangeset for help on using the changeset viewer.