Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Node.hpp

    r52a4d69 r2890212  
    1010// Created On       : Wed May 8 10:27:04 2019
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Fri Jun 5 9:47:00 2020
    13 // Update Count     : 6
     12// Last Modified On : Mon Jun  3 13:26:00 2019
     13// Update Count     : 5
    1414//
    1515
     
    243243        const o_node_t * as() const { _check(); return dynamic_cast<const o_node_t *>(node); }
    244244
    245         /// Wrapper that makes sure dynamic_cast returns non-null.
     245        /// wrapper for convenient access to strict_dynamic_cast
    246246        template<typename o_node_t>
    247         const o_node_t * strict_as() const {
    248                 if (const o_node_t * ret = as<o_node_t>()) return ret;
    249                 _strict_fail();
    250         }
    251 
    252         /// Wrapper that makes sure dynamic_cast does not fail.
    253         template<typename o_node_t, decltype(nullptr) null>
    254         const o_node_t * strict_as() const { return node ? strict_as<o_node_t>() : nullptr; }
     247        const o_node_t * strict_as() const { _check(); return strict_dynamic_cast<const o_node_t *>(node); }
    255248
    256249        /// Returns a mutable version of the pointer in this node.
     
    273266        void _dec( const node_t * other, bool do_delete = true );
    274267        void _check() const;
    275         void _strict_fail() const __attribute__((noreturn));
    276268
    277269        const node_t * node;
Note: See TracChangeset for help on using the changeset viewer.