Changes in src/InitTweak/FixInit.cc [a2a8d2a6:486341f]
- File:
-
- 1 edited
-
src/InitTweak/FixInit.cc (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/InitTweak/FixInit.cc
ra2a8d2a6 r486341f 188 188 virtual void visit( ApplicationExpr * appExpr ); 189 189 190 SemanticError errors;191 190 private: 192 191 void handleFirstParam( Expression * firstParam ); 193 template< typename... Params >194 void emit( const Params &... params );195 192 196 193 FunctionDecl * function = 0; … … 261 258 WarnStructMembers warner; 262 259 acceptAll( translationUnit, warner ); 263 264 // visitor doesn't throw so that it can collect all errors265 if ( ! warner.errors.isEmpty() ) {266 throw warner.errors;267 }268 260 } 269 261 } … … 743 735 for ( DeclarationWithType * member : unhandled ) { 744 736 // emit a warning for each unhandled member 745 emit( "in ", CodeGen::genType( function->get_functionType(), function->get_name(), false ), ", member ", member->get_name(), " may not have been ", isConstructor( funcDecl->get_name() ) ? "constructed" : "destructed" );737 warn( "in ", CodeGen::genType( function->get_functionType(), function->get_name(), false ), ", member ", member->get_name(), " may not have been ", isConstructor( funcDecl->get_name() ) ? "constructed" : "destructed" ); 746 738 } 747 739 748 // need to steal the errors before they're lost749 old.errors.append( errors );750 740 *this = old; 751 741 } … … 807 797 if ( unhandled.count( memberExpr->get_member() ) ) { 808 798 // emit a warning because a member was used before it was constructed 809 emit( "in ", CodeGen::genType( function->get_functionType(), function->get_name(), false ), ", member ", memberExpr->get_member()->get_name(), " used before being constructed" );799 warn( "in ", CodeGen::genType( function->get_functionType(), function->get_name(), false ), ", member ", memberExpr->get_member()->get_name(), " used before being constructed" ); 810 800 } 811 801 } … … 815 805 Parent::visit( memberExpr ); 816 806 } 817 818 template< typename Visitor, typename... Params >819 void error( Visitor & v, const Params &... params ) {820 v.errors.append( toString( params... ) );821 }822 823 template< typename... Params >824 void WarnStructMembers::emit( const Params &... params ) {825 // toggle warnings vs. errors here.826 // warn( params... );827 error( *this, params... );828 }829 807 } // namespace 830 808 } // namespace InitTweak
Note:
See TracChangeset
for help on using the changeset viewer.