- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/ResolveAssertions.cc
rd3b2c32a r99d4584 342 342 343 343 /// 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; 347 345 348 346 void resolveAssertions( Alternative& alt, const SymTab::Indexer& indexer, AltList& out, std::list<std::string>& errors ) { … … 371 369 ss << tabs << "Unsatisfiable alternative:\n"; 372 370 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 ); 375 373 376 374 errors.emplace_back( ss.str() ); … … 386 384 new_resns.emplace_back( std::move(resn), IterateState ); 387 385 } 388 } else if ( resn.deferred.size() > deferLimit ) {389 // too many deferred assertions to attempt mutual compatibility390 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;402 386 } else { 403 387 // resolve deferred assertions by mutual compatibility … … 411 395 ss << tabs << "Unsatisfiable alternative:\n"; 412 396 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; 414 399 for ( const auto& d : resn.deferred ) { 415 400 d.decl->print( ss, tabs );
Note:
See TracChangeset
for help on using the changeset viewer.