Changeset ef3d798


Ignore:
Timestamp:
Nov 30, 2017, 5:39:14 PM (7 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
c3f551b
Parents:
1fbeebd
git-author:
Rob Schluntz <rschlunt@…> (11/30/17 17:38:11)
git-committer:
Rob Schluntz <rschlunt@…> (11/30/17 17:39:14)
Message:

Convert InitDepthChecker? to PassVisitor?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/InitTweak/InitTweak.cc

    r1fbeebd ref3d798  
    4848                };
    4949
    50                 class InitDepthChecker : public Visitor {
    51                 public:
     50                struct InitDepthChecker : public WithGuards {
    5251                        bool depthOkay = true;
    5352                        Type * type;
     
    6160                                maxDepth++;
    6261                        }
    63                         virtual void visit( ListInit * listInit ) {
     62                        void previsit( ListInit * ) {
    6463                                curDepth++;
     64                                GuardAction( [this]() { curDepth--; } );
    6565                                if ( curDepth > maxDepth ) depthOkay = false;
    66                                 Visitor::visit( listInit );
    67                                 curDepth--;
    6866                        }
    6967                };
     
    102100
    103101        bool checkInitDepth( ObjectDecl * objDecl ) {
    104                 InitDepthChecker checker( objDecl->get_type() );
    105                 maybeAccept( objDecl->get_init(), checker );
    106                 return checker.depthOkay;
     102                PassVisitor<InitDepthChecker> checker( objDecl->type );
     103                maybeAccept( objDecl->init, checker );
     104                return checker.pass.depthOkay;
    107105        }
    108106
Note: See TracChangeset for help on using the changeset viewer.