src/Pure/Tools/scala_project.scala
changeset 74104 fa92c5f8af86
parent 74103 3b56d00ac333
child 74429 fedc0b659881
--- a/src/Pure/Tools/scala_project.scala	Mon Aug 02 13:50:45 2021 +0200
+++ b/src/Pure/Tools/scala_project.scala	Mon Aug 02 14:08:42 2021 +0200
@@ -94,20 +94,22 @@
 
   val default_project_dir = Path.explode("$ISABELLE_HOME_USER/scala_project")
 
-  def package_dir(source_file: Path): Option[Path] =
+  def package_name(source_file: Path): Option[String] =
   {
     val lines = split_lines(File.read(source_file))
     val Package = """\s*\bpackage\b\s*(?:object\b\s*)?((?:\w|\.)+)\b.*""".r
-    lines.collectFirst(
-      {
-        case Package(name) =>
-          if (source_file.is_java) Path.explode(space_explode('.', name).mkString("/"))
-          else Path.basic(name)
-      })
+    lines.collectFirst({ case Package(name) => name })
   }
 
   def the_package_dir(source_file: Path): Path =
-    package_dir(source_file) getOrElse error("Failed to guess package from " + source_file)
+  {
+    package_name(source_file) match {
+      case Some(name) =>
+        if (source_file.is_java) Path.explode(space_explode('.', name).mkString("/"))
+        else Path.basic(name)
+      case None => error("Failed to guess package from " + source_file)
+    }
+  }
 
   def scala_project(
     project_dir: Path = default_project_dir,