Changeset 7f2bfb7 for src/ResolvExpr/CurrentObject.cc
- Timestamp:
- Nov 29, 2023, 1:41:52 PM (13 months ago)
- Branches:
- master
- Children:
- 4dc3b8c
- Parents:
- 4f1b2d69 (diff), ab9c1b3 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/CurrentObject.cc
r4f1b2d69 r7f2bfb7 498 498 PRINT( std::cerr << "____untyped: " << expr << std::endl; ) 499 499 auto dit = desigAlts.begin(); 500 auto nexpr = dynamic_cast< const NameExpr * >( expr ); 500 501 501 502 for ( const Type * t : curTypes ) { 502 503 assert( dit != desigAlts.end() ); 503 504 DesignatorChain & d = *dit; 504 if ( auto nexpr = dynamic_cast< const NameExpr *>( expr ) ) { 505 // Name Designation: 506 if ( nexpr ) { 505 507 PRINT( std::cerr << "____actual: " << t << std::endl; ) 506 508 if ( auto refType = dynamic_cast< const BaseInstType * >( t ) ) { … … 515 517 } 516 518 } 517 } else if ( auto at = dynamic_cast< const ArrayType * >( t ) ) {518 auto nexpr = dynamic_cast< const NameExpr *>( expr );519 for ( const Decl * mem : refType->lookup( nexpr->name ) ) {520 if ( auto field = dynamic_cast< const ObjectDecl * >( mem ) ) {521 DesignatorChain d2 = d;522 d2.emplace_back( new VariableExpr{ expr->location, field } );523 newDesigAlts.emplace_back( std::move( d2 ) );524 newTypes.emplace_back( at->base );525 }526 }527 519 } 528 520 529 521 ++dit; 522 // Index Designation: 530 523 } else { 531 524 if ( auto at = dynamic_cast< const ArrayType * >( t ) ) {
Note: See TracChangeset
for help on using the changeset viewer.