Ignore:
Timestamp:
Jun 7, 2019, 4:14:48 PM (5 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
05d55ff
Parents:
5684736
git-author:
Aaron Moss <a3moss@…> (06/07/19 16:14:40)
git-committer:
Aaron Moss <a3moss@…> (06/07/19 16:14:48)
Message:

More resolver porting; mostly CurrentObject?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Convert.cpp

    r5684736 r60aaa51d  
    1616#include "Convert.hpp"
    1717
     18#include <deque>
    1819#include <unordered_map>
    1920
     
    575576
    576577                if ( srcInferred.mode == ast::Expr::InferUnion::Params ) {
    577                         const ast::InferredParams &srcParams = srcInferred.inferParamsConst();
     578                        const ast::InferredParams &srcParams = srcInferred.inferParams();
    578579                        for (auto srcParam : srcParams) {
    579580                                tgtInferParams[srcParam.first] = ParamEntry(
     
    585586                        }
    586587                } else if ( srcInferred.mode == ast::Expr::InferUnion::Slots  ) {
    587                         const ast::ResnSlots &srcSlots = srcInferred.resnSlotsConst();
     588                        const ast::ResnSlots &srcSlots = srcInferred.resnSlots();
    588589                        for (auto srcSlot : srcSlots) {
    589590                                tgtResnSlots.push_back(srcSlot);
     
    14131414#       define GET_ACCEPT_V(child, type) \
    14141415                getAcceptV< ast::type, decltype( old->child ) >( old->child )
     1416       
     1417        template<typename NewT, typename OldC>
     1418        std::deque< ast::ptr<NewT> > getAcceptD( OldC& old ) {
     1419                std::deque< ast::ptr<NewT> > ret;
     1420                for ( auto a : old ) {
     1421                        a->accept( *this );
     1422                        ret.emplace_back( strict_dynamic_cast< NewT * >(node) );
     1423                        node = nullptr;
     1424                }
     1425                return ret;
     1426        }
     1427
     1428#       define GET_ACCEPT_D(child, type) \
     1429                getAcceptD< ast::type, decltype( old->child ) >( old->child )
    14151430
    14161431        ast::Label make_label(Label* old) {
     
    24492464
    24502465        virtual void visit( UntypedInitExpr * old ) override final {
    2451                 std::vector<ast::InitAlternative> initAlts;
     2466                std::deque<ast::InitAlternative> initAlts;
    24522467                for (auto ia : old->initAlts) {
    24532468                        initAlts.push_back(ast::InitAlternative(
     
    27142729                this->node = new ast::Designation(
    27152730                        old->location,
    2716                         GET_ACCEPT_V(designators, Expr)
     2731                        GET_ACCEPT_D(designators, Expr)
    27172732                );
    27182733        }
Note: See TracChangeset for help on using the changeset viewer.