diff -r 3b56d00ac333 -r fa92c5f8af86 src/Pure/Tools/scala_project.scala --- 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,