Index: pkg/analyzer/lib/src/summary/idl.dart |
diff --git a/pkg/analyzer/lib/src/summary/idl.dart b/pkg/analyzer/lib/src/summary/idl.dart |
index 21473a2a0e311de315504842acebab8d2e24f239..a777ae22db06dccb9f486b6beec78b381d22a7c4 100644 |
--- a/pkg/analyzer/lib/src/summary/idl.dart |
+++ b/pkg/analyzer/lib/src/summary/idl.dart |
@@ -445,6 +445,13 @@ abstract class LinkedUnit extends base.SummaryClass { |
*/ |
@Id(1) |
List<EntityRef> get types; |
+ |
+ /** |
+ * List of slot ids (referring to [UnlinkedExecutable.constCycleSlot]) |
+ * corresponding to const constructors that are part of cycles. |
+ */ |
+ @Id(2) |
+ List<int> get constCycles; |
} |
/** |
@@ -1521,6 +1528,17 @@ abstract class UnlinkedExecutable extends base.SummaryClass { |
*/ |
@Id(21) |
int get visibleOffset; |
+ |
+ /** |
+ * If [kind] is [UnlinkedExecutableKind.constructor] and [isConst] is `true`, |
+ * a nonzero slot id which is unique within this compilation unit. If this id |
+ * is found in [LinkedUnit.constCycles], then this constructor is part of a |
+ * cycle. |
+ * |
+ * Otherwise, zero. |
+ */ |
+ @Id(25) |
+ int get constCycleSlot; |
} |
/** |