// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. /// An exception indicating that a cycle was detected in a graph that was /// expected to be acyclic. class CycleException implements Exception { /// The list of nodes comprising the cycle. /// /// Each node in this list has an edge to the next node. The final node has an /// edge to the first node. final List cycle; CycleException(Iterable cycle) : cycle = List.unmodifiable(cycle); @override String toString() => 'A cycle was detected in a graph that must be acyclic:\n' '${cycle.map((node) => '* $node').join('\n')}'; }