src/Pure/System/isabelle_system.scala
changeset 72214 5924c1da3c45
parent 72159 40b5ee5889d2
child 72362 5f17bf3709b8
--- 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
   {