Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Unified Diff: pkg/analyzer/lib/src/task/driver.dart

Issue 1413273002: Library Cycle invalidation (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Fix some comments Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analyzer/lib/src/task/dart.dart ('k') | pkg/analyzer/lib/task/model.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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}');
}
« no previous file with comments | « pkg/analyzer/lib/src/task/dart.dart ('k') | pkg/analyzer/lib/task/model.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698