Changeset 982f95d for src/ResolvExpr/PtrsAssignable.cc
- Timestamp:
- Jun 15, 2018, 5:09:29 PM (6 years ago)
- Branches:
- new-env
- Children:
- 97397a26
- Parents:
- 1d7b0a8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/PtrsAssignable.cc
r1d7b0a8 r982f95d 15 15 16 16 #include "Common/PassVisitor.h" 17 #include "ResolvExpr/TypeEnvironment.h" // for EqvClass, TypeEnvironment17 #include "ResolvExpr/TypeEnvironment.h" // for ClassRef, TypeEnvironment 18 18 #include "SynTree/Type.h" // for TypeInstType, Type, BasicType 19 19 #include "SynTree/Visitor.h" // for Visitor … … 51 51 // std::cerr << "assignable: " << src << " | " << dest << std::endl; 52 52 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 ); 55 55 } // if 56 56 } // if … … 94 94 void PtrsAssignable::postvisit( __attribute__((unused)) TraitInstType *inst ) {} 95 95 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 ) { 98 98 // 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 ); 100 100 } 101 101 } // if
Note: See TracChangeset
for help on using the changeset viewer.