tuned signature: more explicit operations;
authorwenzelm
Sun, 10 Aug 2025 22:11:50 +0200
changeset 82982 cbeab5584c62
parent 82981 4629fcbf53e2
child 82983 85887dcdef7f
tuned signature: more explicit operations;
src/Pure/Admin/build_doc.scala
src/Pure/Build/build.scala
src/Pure/Build/build_benchmark.scala
src/Pure/Thy/document_build.scala
--- a/src/Pure/Admin/build_doc.scala	Sun Aug 10 22:07:26 2025 +0200
+++ b/src/Pure/Admin/build_doc.scala	Sun Aug 10 22:11:50 2025 +0200
@@ -39,8 +39,7 @@
 
     progress.echo("Build started for sessions " + commas_quote(selection.sessions))
     val build_results =
-      Build.build(options, selection = selection, progress = progress, max_jobs = max_jobs)
-    if (!build_results.ok) error("Build failed")
+      Build.build(options, selection = selection, progress = progress, max_jobs = max_jobs).check
 
     progress.echo("Build started for documentation " + commas_quote(documents))
     val deps = Sessions.load_structure(options + "document").selection_deps(selection)
--- a/src/Pure/Build/build.scala	Sun Aug 10 22:07:26 2025 +0200
+++ b/src/Pure/Build/build.scala	Sun Aug 10 22:11:50 2025 +0200
@@ -98,6 +98,11 @@
 
     lazy val unfinished: List[String] = sessions.iterator.filterNot(apply(_).ok).toList.sorted
 
+    def check: Results =
+      if (ok) this
+      else if (unfinished.isEmpty) error("Build failed")
+      else error("Build failed with unfinished session(s): " + commas(unfinished))
+
     override def toString: String = rc.toString
   }
 
--- a/src/Pure/Build/build_benchmark.scala	Sun Aug 10 22:07:26 2025 +0200
+++ b/src/Pure/Build/build_benchmark.scala	Sun Aug 10 22:11:50 2025 +0200
@@ -34,8 +34,7 @@
     val options1 = options.string.update("build_engine", Build.Engine.Default.name)
     val selection =
       Sessions.Selection(requirements = true, sessions = List(benchmark_session(options)))
-    val res = Build.build(options1, selection = selection, progress = progress, build_heap = true)
-    if (!res.ok) error("Failed building requirements")
+    Build.build(options1, selection = selection, progress = progress, build_heap = true).check
   }
 
   def run_benchmark(options: Options, progress: Progress = new Progress): Unit = {
--- a/src/Pure/Thy/document_build.scala	Sun Aug 10 22:07:26 2025 +0200
+++ b/src/Pure/Thy/document_build.scala	Sun Aug 10 22:11:50 2025 +0200
@@ -597,8 +597,7 @@
         progress.interrupt_handler {
           val build_results =
             Build.build(options, selection = Sessions.Selection.session(session),
-              dirs = dirs, progress = progress)
-          if (!build_results.ok) error("Failed to build session " + quote(session))
+              dirs = dirs, progress = progress).check
 
           if (output_sources.isEmpty && output_pdf.isEmpty) {
             progress.echo_warning("No output directory")