Ignore:
Timestamp:
Sep 13, 2017, 2:13:59 PM (4 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, with_gc
Children:
9f5ecf5
Parents:
aa72198
Message:

Clean pass visitor and enabled indexer features

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Common/PassVisitor.proto.h

    raa72198 r9dcb653  
    6161template< typename TreeType, typename VisitorType >
    6262inline void indexerScopedAccept( TreeType * tree, VisitorType & visitor ) {
    63         // auto guard = makeFuncGuard(
    64         //      [&visitor]() { visitor.indexerScopeEnter(); },
    65         //      [&visitor]() { visitor.indexerScopeLeave(); }
    66         // );
     63        auto guard = makeFuncGuard(
     64                [&visitor]() { visitor.indexerScopeEnter(); },
     65                [&visitor]() { visitor.indexerScopeLeave(); }
     66        );
    6767        maybeAccept( tree, visitor );
    6868}
     
    7070template< typename TreeType, typename MutatorType >
    7171inline void indexerScopedMutate( TreeType *& tree, MutatorType & mutator ) {
    72         // auto guard = makeFuncGuard(
    73         //      [&mutator]() { mutator.indexerScopeEnter(); },
    74         //      [&mutator]() { mutator.indexerScopeLeave(); }
    75         // );
     72        auto guard = makeFuncGuard(
     73                [&mutator]() { mutator.indexerScopeEnter(); },
     74                [&mutator]() { mutator.indexerScopeLeave(); }
     75        );
    7676        tree = maybeMutate( tree, mutator );
    7777}
     
    175175template<typename pass_type>
    176176static inline auto indexer_impl_enterScope( pass_type & pass, int ) -> decltype( pass.indexer.enterScope(), void() ) {
    177         // pass.indexer.enterScope();
     177        pass.indexer.enterScope();
    178178}
    179179
     
    183183template<typename pass_type>
    184184static inline auto indexer_impl_leaveScope( pass_type & pass, int ) -> decltype( pass.indexer.leaveScope(), void() ) {
    185         // pass.indexer.leaveScope();
     185        pass.indexer.leaveScope();
    186186}
    187187
     
    193193template<typename pass_type>                                                                                                   \
    194194static inline auto indexer_impl_##func ( pass_type & pass, int, type arg ) -> decltype( pass.indexer.func( arg ), void() ) {   \
    195         /*pass.indexer.func( arg );*/                                                                                                \
     195        pass.indexer.func( arg );                                                                                                \
    196196}                                                                                                                              \
    197197                                                                                                                               \
     
    209209template<typename pass_type>
    210210static inline auto indexer_impl_addStructFwd( pass_type & pass, int, StructDecl * decl ) -> decltype( pass.indexer.addStruct( decl ), void() ) {
    211         // StructDecl * fwd = new StructDecl( decl->name );
    212         // cloneAll( decl->parameters, fwd->parameters );
    213         // pass.indexer.addStruct( fwd );
     211        StructDecl * fwd = new StructDecl( decl->name );
     212        cloneAll( decl->parameters, fwd->parameters );
     213        pass.indexer.addStruct( fwd );
    214214}
    215215
     
    219219template<typename pass_type>
    220220static inline auto indexer_impl_addUnionFwd( pass_type & pass, int, UnionDecl * decl ) -> decltype( pass.indexer.addUnion( decl ), void() ) {
    221         // UnionDecl * fwd = new UnionDecl( decl->name );
    222         // cloneAll( decl->parameters, fwd->parameters );
    223         // pass.indexer.addUnion( fwd );
     221        UnionDecl * fwd = new UnionDecl( decl->name );
     222        cloneAll( decl->parameters, fwd->parameters );
     223        pass.indexer.addUnion( fwd );
    224224}
    225225
     
    229229template<typename pass_type>
    230230static inline auto indexer_impl_addStruct( pass_type & pass, int, const std::string & str ) -> decltype( pass.indexer.addStruct( str ), void() ) {
    231         // if ( ! pass.indexer.lookupStruct( str ) ) {
    232         //      pass.indexer.addStruct( str );
    233         // }
     231        if ( ! pass.indexer.lookupStruct( str ) ) {
     232                pass.indexer.addStruct( str );
     233        }
    234234}
    235235
     
    239239template<typename pass_type>
    240240static inline auto indexer_impl_addUnion( pass_type & pass, int, const std::string & str ) -> decltype( pass.indexer.addUnion( str ), void() ) {
    241         // if ( ! pass.indexer.lookupUnion( str ) ) {
    242         //      pass.indexer.addUnion( str );
    243         // }
     241        if ( ! pass.indexer.lookupUnion( str ) ) {
     242                pass.indexer.addUnion( str );
     243        }
    244244}
    245245
Note: See TracChangeset for help on using the changeset viewer.