--- a/src/Pure/System/isabelle_system.scala Thu Aug 27 12:43:06 2020 +0200
+++ b/src/Pure/System/isabelle_system.scala Thu Aug 27 12:51:57 2020 +0200
@@ -64,18 +64,8 @@
}
def make_services[C](c: Class[C]): List[C] =
- {
- @tailrec def is_subclass(c1: Class[_]): Boolean =
- {
- c1 == c ||
- {
- val c2 = c1.getSuperclass
- c2 != null && is_subclass(c2)
- }
- }
- for { c1 <- services() if is_subclass(c1) }
+ for { c1 <- services() if Library.is_subclass(c1, c) }
yield c1.getDeclaredConstructor().newInstance().asInstanceOf[C]
- }
def init(isabelle_root: String = "", cygwin_root: String = ""): Unit = synchronized
{