Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SymTab/Indexer.cc

    r5fe35d6 r81644e0  
    567567        }
    568568
     569        void Indexer::addWith( WithStmt * stmt ) {
     570                for ( Expression * expr : stmt->exprs ) {
     571                        if ( expr->result ) {
     572                                AggregateDecl * aggr = expr->result->getAggr();
     573                                assertf( aggr, "WithStmt expr has non-aggregate type: %s", toString( expr->result ).c_str() );
     574
     575                                // xxx - this is wrong, needs to somehow hook up chain of objects
     576                                for ( Declaration * decl : aggr->members ) {
     577                                        if ( DeclarationWithType * dwt = dynamic_cast< DeclarationWithType * >( decl ) ) {
     578                                                addId( dwt );
     579                                        }
     580                                }
     581                        }
     582                }
     583        }
     584
    569585        void Indexer::addIds( const std::list< DeclarationWithType * > & decls ) {
    570586                for ( auto d : decls ) {
Note: See TracChangeset for help on using the changeset viewer.