Chromium Code Reviews| Index: pkg/analyzer/lib/src/task/driver.dart |
| diff --git a/pkg/analyzer/lib/src/task/driver.dart b/pkg/analyzer/lib/src/task/driver.dart |
| index 3231454d46fd79688b02692f2a3d02666af9ba35..b725042b36fc1c5495f486aa98432c20bdb6cae0 100644 |
| --- a/pkg/analyzer/lib/src/task/driver.dart |
| +++ b/pkg/analyzer/lib/src/task/driver.dart |
| @@ -473,6 +473,14 @@ abstract class ExtendedAnalysisContext implements InternalAnalysisContext { |
| */ |
| class InfiniteTaskLoopException extends AnalysisException { |
| /** |
| + * A concrete cyclic path of [TargetedResults] within the [dependencyCycle], |
| + * `null` if no such path exists. All nodes in the path are in the |
| + * dependencyCycle, but the path is not guaranteed to cover the |
| + * entire cycle. |
| + */ |
| + final List<TargetedResult> cyclicPath; |
|
Leaf
2015/10/19 22:32:27
Not sure if this is the right way to surface this.
Brian Wilkerson
2015/10/19 23:01:40
If it makes debugging easier without hurting perfo
|
| + |
| + /** |
| * If a dependency cycle was found while computing the inputs for the task, |
| * the set of [WorkItem]s contained in the cycle (if there are overlapping |
| * cycles, this is the set of all [WorkItem]s in the entire strongly |
| @@ -484,7 +492,8 @@ class InfiniteTaskLoopException extends AnalysisException { |
| * Initialize a newly created exception to represent a failed attempt to |
| * perform the given [task] due to the given [dependencyCycle]. |
| */ |
| - InfiniteTaskLoopException(AnalysisTask task, this.dependencyCycle) |
| + InfiniteTaskLoopException(AnalysisTask task, this.dependencyCycle, |
| + [this.cyclicPath]) |
| : super( |
| 'Infinite loop while performing task ${task.descriptor.name} for ${task.target}'); |
| } |