clarified signature: more explicit types;
authorwenzelm
Fri, 23 Dec 2022 14:32:53 +0100
changeset 76757 0d08ee0c1ea0
parent 76756 907b5c4d1332
child 76758 8fc7157485d8
clarified signature: more explicit types;
src/Pure/Thy/document_build.scala
--- a/src/Pure/Thy/document_build.scala	Fri Dec 23 12:14:10 2022 +0100
+++ b/src/Pure/Thy/document_build.scala	Fri Dec 23 14:32:53 2022 +0100
@@ -132,6 +132,13 @@
     List("isabelle.sty", "isabellesym.sty", "pdfsetup.sty", "railsetup.sty").
       map(name => texinputs + Path.basic(name))
 
+  sealed case class Document_Latex(name: Document.Node.Name, body: XML.Body) {
+    def content: File.Content_XML = File.content(Path.basic(tex_name(name)), body)
+    def file_pos: String = name.path.implode_symbolic
+    def write(latex_output: Latex.Output, dir: Path): Unit =
+      content.output(latex_output(_, file_pos = file_pos)).write(dir)
+  }
+
   def context(
     session_context: Export.Session_Context,
     document_session: Option[Sessions.Base] = None,
@@ -185,18 +192,16 @@
     def session_document_theories: List[Document.Node.Name] = base.proper_session_theories
     def all_document_theories: List[Document.Node.Name] = base.all_document_theories
 
-    lazy val document_latex: List[(File.Content_XML, String)] =
+    lazy val document_latex: List[Document_Latex] =
       for (name <- all_document_theories)
       yield {
-        val path = Path.basic(tex_name(name))
-        val content =
+        val body =
           if (document_selection(name)) {
             val entry = session_context(name.theory, Export.DOCUMENT_LATEX, permissive = true)
             YXML.parse_body(entry.text)
           }
           else Nil
-        val file_pos = name.path.implode_symbolic
-        (File.content(path, content), file_pos)
+        Document_Latex(name, body)
       }
 
     lazy val session_graph: File.Content = {
@@ -263,11 +268,7 @@
       }
 
       session_tex.write(doc_dir)
-
-      for ((content, file_pos) <- document_latex) {
-        content.output(latex_output(_, file_pos = file_pos))
-          .write(doc_dir)
-      }
+      document_latex.foreach(_.write(latex_output, doc_dir))
 
       val root_name1 = "root_" + doc.name
       val root_name = if ((doc_dir + Path.explode(root_name1).tex).is_file) root_name1 else "root"