Ignore:
Timestamp:
Jun 15, 2018, 5:09:29 PM (6 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
new-env
Children:
97397a26
Parents:
1d7b0a8
Message:

Start of new environment implementation; terribly broken

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/PtrsAssignable.cc

    r1d7b0a8 r982f95d  
    1515
    1616#include "Common/PassVisitor.h"
    17 #include "ResolvExpr/TypeEnvironment.h"  // for EqvClass, TypeEnvironment
     17#include "ResolvExpr/TypeEnvironment.h"  // for ClassRef, TypeEnvironment
    1818#include "SynTree/Type.h"                // for TypeInstType, Type, BasicType
    1919#include "SynTree/Visitor.h"             // for Visitor
     
    5151                // std::cerr << "assignable: " << src << " | " << dest << std::endl;
    5252                if ( TypeInstType *destAsTypeInst = dynamic_cast< TypeInstType* >( dest ) ) {
    53                         if ( const EqvClass *eqvClass = env.lookup( destAsTypeInst->get_name() ) ) {
    54                                 return ptrsAssignable( src, eqvClass->type, env );
     53                        if ( ClassRef eqvClass = env.lookup( destAsTypeInst->get_name() ) ) {
     54                                return ptrsAssignable( src, eqvClass.get_bound().type, env );
    5555                        } // if
    5656                } // if
     
    9494        void PtrsAssignable::postvisit(  __attribute__((unused)) TraitInstType *inst ) {}
    9595        void PtrsAssignable::postvisit( TypeInstType *inst ) {
    96                 if ( const EqvClass *eqvClass = env.lookup( inst->get_name() ) ) {
    97                         if ( eqvClass->type ) {
     96                if ( ClassRef eqvClass = env.lookup( inst->get_name() ) ) {
     97                        if ( Type* boundTy = eqvClass.get_bound().type ) {
    9898                                // T * = S * for any S depends on the type bound to T
    99                                 result = ptrsAssignable( eqvClass->type, dest, env );
     99                                result = ptrsAssignable( boundTy, dest, env );
    100100                        }
    101101                } // if
Note: See TracChangeset for help on using the changeset viewer.