Changeset e3e16bc for src/SymTab/Validate.cc
- Timestamp:
- Sep 13, 2017, 2:34:55 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 982832e
- Parents:
- 9f5ecf5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Validate.cc
r9f5ecf5 re3e16bc 486 486 std::list< DeclarationWithType * > asserts; 487 487 for ( Declaration * decl : inst->baseTrait->members ) { 488 asserts.push_back( s afe_dynamic_cast<DeclarationWithType *>( decl->clone() ) );488 asserts.push_back( strict_dynamic_cast<DeclarationWithType *>( decl->clone() ) ); 489 489 } 490 490 // substitute trait decl parameters for instance parameters … … 530 530 // need to carry over the 'sized' status of each decl in the instance 531 531 for ( auto p : group_iterate( traitDecl->get_parameters(), traitInst->get_parameters() ) ) { 532 TypeExpr * expr = s afe_dynamic_cast< TypeExpr * >( std::get<1>(p) );532 TypeExpr * expr = strict_dynamic_cast< TypeExpr * >( std::get<1>(p) ); 533 533 if ( TypeInstType * inst = dynamic_cast< TypeInstType * >( expr->get_type() ) ) { 534 534 TypeDecl * formalDecl = std::get<0>(p); … … 892 892 for ( size_t i = 0; paramIter != params->end(); ++paramIter, ++i ) { 893 893 if ( i < args.size() ) { 894 TypeExpr * expr = s afe_dynamic_cast< TypeExpr * >( *std::next( args.begin(), i ) );894 TypeExpr * expr = strict_dynamic_cast< TypeExpr * >( *std::next( args.begin(), i ) ); 895 895 sub.add( (*paramIter)->get_name(), expr->get_type()->clone() ); 896 896 } else if ( i == args.size() ) { … … 962 962 if ( retVals.size() > 1 ) { 963 963 // generate a single return parameter which is the tuple of all of the return values 964 TupleType * tupleType = s afe_dynamic_cast< TupleType * >( ResolvExpr::extractResultType( ftype ) );964 TupleType * tupleType = strict_dynamic_cast< TupleType * >( ResolvExpr::extractResultType( ftype ) ); 965 965 // ensure return value is not destructed by explicitly creating an empty ListInit node wherein maybeConstruct is false. 966 966 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.