diff --git a/src/main/kotlin/com/beust/kobalt/misc/Topological.kt b/src/main/kotlin/com/beust/kobalt/misc/Topological.kt index 0b65dc75..0003b4a4 100644 --- a/src/main/kotlin/com/beust/kobalt/misc/Topological.kt +++ b/src/main/kotlin/com/beust/kobalt/misc/Topological.kt @@ -1,5 +1,6 @@ package com.beust.kobalt.misc +import com.beust.kobalt.KobaltException import com.google.common.collect.ArrayListMultimap import com.google.common.collect.HashMultimap import java.util.* @@ -29,6 +30,9 @@ class Topological { val freeNodes = all.filter { dependMap.get(it).isEmpty() } + if (freeNodes.isEmpty()) { + throw KobaltException("The dependency graph has a cycle: $all") + } result.addAll(freeNodes) all.removeAll(freeNodes) val newMap = HashMultimap.create()