Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Attribute.hpp

    r6d98a07 r6d51bd7  
    1919#include <vector>
    2020
     21#include "Fwd.hpp"
    2122#include "Node.hpp"     // for ptr
    2223#include "Visitor.hpp"
     
    3132        std::vector<ptr<Expr>> parameters;
    3233
    33         Attribute( const std::string& name = "", std::vector<ptr<Expr>>&& params = {})
     34        Attribute( const std::string & name = "", std::vector<ptr<Expr>> && params = {})
    3435        : name( name ), parameters( params ) {}
     36        virtual ~Attribute() = default;
    3537
    3638        bool empty() const { return name.empty(); }
     
    4244        bool isValidOnFuncParam() const;
    4345
    44         Attribute* accept( Visitor& v ) override { return v.visit( this ); }
     46        const Attribute * accept( Visitor & v ) const override { return v.visit( this ); }
    4547private:
    46         Attribute* clone() const override { return new Attribute{ *this }; }
     48        Attribute * clone() const override { return new Attribute{ *this }; }
     49
     50        /// Must be copied in ALL derived classes
     51        template<typename node_t>
     52        friend auto mutate(const node_t * node);
    4753};
    4854
Note: See TracChangeset for help on using the changeset viewer.