clarified signature;
authorwenzelm
Wed, 09 Dec 2020 15:53:45 +0100
changeset 72857 a9e091ccd450
parent 72856 3a27e6f83ce1
child 72858 cb0c407fbc6e
clarified signature;
src/Pure/PIDE/resources.scala
src/Pure/Thy/thy_header.scala
src/Pure/Tools/build_job.scala
--- a/src/Pure/PIDE/resources.scala	Wed Dec 09 15:14:24 2020 +0100
+++ b/src/Pure/PIDE/resources.scala	Wed Dec 09 15:53:45 2020 +0100
@@ -69,7 +69,7 @@
   def append(node_name: Document.Node.Name, source_path: Path): String =
     append(node_name.master_dir, source_path)
 
-  def make_theory_node(dir: String, file: Path, theory: String): Document.Node.Name =
+  def file_node(file: Path, dir: String = "", theory: String = ""): Document.Node.Name =
   {
     val node = append(dir, file)
     val master_dir = append(dir, file.dir)
@@ -155,13 +155,13 @@
         case None => Nil
       }
     dirs.collectFirst({
-      case dir if (dir + thy_file).is_file => make_theory_node("", dir + thy_file, theory) })
+      case dir if (dir + thy_file).is_file => file_node(dir + thy_file, theory = theory) })
   }
 
   def import_name(qualifier: String, dir: String, s: String): Document.Node.Name =
   {
     val theory = theory_name(qualifier, Thy_Header.import_name(s))
-    def theory_node = make_theory_node(dir, Path.explode(s).thy, theory)
+    def theory_node = file_node(Path.explode(s).thy, dir = dir, theory = theory)
 
     if (!Thy_Header.is_base_name(s)) theory_node
     else if (session_base.loaded_theory(theory)) loaded_theory_node(theory)
--- a/src/Pure/Thy/thy_header.scala	Wed Dec 09 15:14:24 2020 +0100
+++ b/src/Pure/Thy/thy_header.scala	Wed Dec 09 15:53:45 2020 +0100
@@ -90,12 +90,6 @@
       case _ => None
     }
 
-  def dir_name(s: String): String =
-    split_file_name(s) match {
-      case Some((dir, _)) => dir
-      case None => ""
-    }
-
   def import_name(s: String): String =
     s match {
       case File_Name(name) if !name.endsWith(".thy") => name
--- a/src/Pure/Tools/build_job.scala	Wed Dec 09 15:14:24 2020 +0100
+++ b/src/Pure/Tools/build_job.scala	Wed Dec 09 15:53:45 2020 +0100
@@ -15,7 +15,10 @@
   /* theory markup/messages from database */
 
   def read_theory(
-    db_context: Sessions.Database_Context, session: String, theory: String): Option[Command] =
+    db_context: Sessions.Database_Context,
+    resources: Resources,
+    session: String,
+    theory: String): Option[Command] =
   {
     def read(name: String): Export.Entry =
       db_context.get_export(List(session), theory, name)
@@ -26,17 +29,16 @@
 
     (read(Export.DOCUMENT_ID).text, split_lines(read(Export.FILES).text)) match {
       case (Value.Long(id), thy_file :: blobs_files) =>
-        val node_name = Document.Node.Name(thy_file, Thy_Header.dir_name(thy_file), theory)
         val thy_path = Path.explode(thy_file)
         val thy_source = Symbol.decode(File.read(thy_path))
+        val node_name = resources.file_node(thy_path, theory = theory)
 
         val blobs =
           blobs_files.map(file =>
           {
-            val master_dir = Thy_Header.dir_name(file)
             val path = Path.explode(file)
             val src_path = File.relative_path(thy_path, path).getOrElse(path)
-            Command.Blob.read_file(Document.Node.Name(file, master_dir), src_path)
+            Command.Blob.read_file(resources.file_node(path), src_path)
           })
         val blobs_info = Command.Blobs_Info(blobs.map(Exn.Res(_)))