Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/ResolveAssertions.cc

    rd3b2c32a r99d4584  
    342342
    343343        /// Limit to depth of recursion of assertion satisfaction
    344         static const int recursionLimit = 4;
    345         /// Maximum number of simultaneously-deferred assertions to attempt concurrent satisfaction of
    346         static const int deferLimit = 10;
     344        static const int recursionLimit = /* 10 */ 4;
    347345
    348346        void resolveAssertions( Alternative& alt, const SymTab::Indexer& indexer, AltList& out, std::list<std::string>& errors ) {
     
    371369                                                ss << tabs << "Unsatisfiable alternative:\n";
    372370                                                resn.alt.print( ss, ++tabs );
    373                                                 ss << (tabs-1) << "Could not satisfy assertion:\n";
    374                                                 assn.decl->print( ss, tabs );
     371                                                ss << --tabs << "Could not satisfy assertion:\n";
     372                                                assn.decl->print( ss, ++tabs );
    375373                                               
    376374                                                errors.emplace_back( ss.str() );
     
    386384                                                new_resns.emplace_back( std::move(resn), IterateState );
    387385                                        }
    388                                 } else if ( resn.deferred.size() > deferLimit ) {
    389                                         // too many deferred assertions to attempt mutual compatibility
    390                                         Indenter tabs{ 3 };
    391                                         std::ostringstream ss;
    392                                         ss << tabs << "Unsatisfiable alternative:\n";
    393                                         resn.alt.print( ss, ++tabs );
    394                                         ss << (tabs-1) << "Too many non-unique satisfying assignments for "
    395                                                 "assertions:\n";
    396                                         for ( const auto& d : resn.deferred ) {
    397                                                 d.decl->print( ss, tabs );
    398                                         }
    399 
    400                                         errors.emplace_back( ss.str() );
    401                                         goto nextResn;
    402386                                } else {
    403387                                        // resolve deferred assertions by mutual compatibility
     
    411395                                                ss << tabs << "Unsatisfiable alternative:\n";
    412396                                                resn.alt.print( ss, ++tabs );
    413                                                 ss << (tabs-1) << "No mutually-compatible satisfaction for assertions:\n";
     397                                                ss << --tabs << "No mutually-compatible satisfaction for assertions:\n";
     398                                                ++tabs;
    414399                                                for ( const auto& d : resn.deferred ) {
    415400                                                        d.decl->print( ss, tabs );
Note: See TracChangeset for help on using the changeset viewer.