Ignore:
Timestamp:
Sep 13, 2017, 3:11:24 PM (4 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, with_gc
Children:
c57ded70, db70fe4
Parents:
d130fe8 (diff), 982832e (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.
Message:

Merge branch 'master' of plg2:software/cfa/cfa-cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SymTab/Validate.cc

    rd130fe8 rba54f7d  
    493493                std::list< DeclarationWithType * > asserts;
    494494                for ( Declaration * decl : inst->baseTrait->members ) {
    495                         asserts.push_back( safe_dynamic_cast<DeclarationWithType *>( decl->clone() ) );
     495                        asserts.push_back( strict_dynamic_cast<DeclarationWithType *>( decl->clone() ) );
    496496                }
    497497                // substitute trait decl parameters for instance parameters
     
    537537                // need to carry over the 'sized' status of each decl in the instance
    538538                for ( auto p : group_iterate( traitDecl->get_parameters(), traitInst->get_parameters() ) ) {
    539                         TypeExpr * expr = safe_dynamic_cast< TypeExpr * >( std::get<1>(p) );
     539                        TypeExpr * expr = strict_dynamic_cast< TypeExpr * >( std::get<1>(p) );
    540540                        if ( TypeInstType * inst = dynamic_cast< TypeInstType * >( expr->get_type() ) ) {
    541541                                TypeDecl * formalDecl = std::get<0>(p);
     
    897897                        for ( size_t i = 0; paramIter != params->end(); ++paramIter, ++i ) {
    898898                                if ( i < args.size() ) {
    899                                         TypeExpr * expr = safe_dynamic_cast< TypeExpr * >( *std::next( args.begin(), i ) );
     899                                        TypeExpr * expr = strict_dynamic_cast< TypeExpr * >( *std::next( args.begin(), i ) );
    900900                                        sub.add( (*paramIter)->get_name(), expr->get_type()->clone() );
    901901                                } else if ( i == args.size() ) {
     
    967967                if ( retVals.size() > 1 ) {
    968968                        // generate a single return parameter which is the tuple of all of the return values
    969                         TupleType * tupleType = safe_dynamic_cast< TupleType * >( ResolvExpr::extractResultType( ftype ) );
     969                        TupleType * tupleType = strict_dynamic_cast< TupleType * >( ResolvExpr::extractResultType( ftype ) );
    970970                        // ensure return value is not destructed by explicitly creating an empty ListInit node wherein maybeConstruct is false.
    971971                        ObjectDecl * newRet = new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, tupleType, new ListInit( std::list<Initializer*>(), noDesignators, false ) );
Note: See TracChangeset for help on using the changeset viewer.