Index: pkg/analyzer/lib/src/summary/format.dart |
diff --git a/pkg/analyzer/lib/src/summary/format.dart b/pkg/analyzer/lib/src/summary/format.dart |
index 1d91db31f51385ac0238e835a655b86c98910507..5cb6b53dfee001cbea089a5e0d283efd988470a8 100644 |
--- a/pkg/analyzer/lib/src/summary/format.dart |
+++ b/pkg/analyzer/lib/src/summary/format.dart |
@@ -419,6 +419,742 @@ abstract class _AnalysisDriverUnitErrorMixin implements idl.AnalysisDriverUnitEr |
String toString() => convert.JSON.encode(toJson()); |
} |
+class AnalysisDriverUnitIndexBuilder extends Object with _AnalysisDriverUnitIndexMixin implements idl.AnalysisDriverUnitIndex { |
+ List<idl.IndexSyntheticElementKind> _elementKinds; |
+ List<int> _elementNameClassMemberIds; |
+ List<int> _elementNameParameterIds; |
+ List<int> _elementNameUnitMemberIds; |
+ List<int> _elementUnits; |
+ int _nullStringId; |
+ List<String> _strings; |
+ List<int> _unitLibraryUris; |
+ List<int> _unitUnitUris; |
+ List<bool> _usedElementIsQualifiedFlags; |
+ List<idl.IndexRelationKind> _usedElementKinds; |
+ List<int> _usedElementLengths; |
+ List<int> _usedElementOffsets; |
+ List<int> _usedElements; |
+ List<bool> _usedNameIsQualifiedFlags; |
+ List<idl.IndexRelationKind> _usedNameKinds; |
+ List<int> _usedNameOffsets; |
+ List<int> _usedNames; |
+ |
+ @override |
+ List<idl.IndexSyntheticElementKind> get elementKinds => _elementKinds ??= <idl.IndexSyntheticElementKind>[]; |
+ |
+ /** |
+ * Each item of this list corresponds to a unique referenced element. It is |
+ * the kind of the synthetic element. |
+ */ |
+ void set elementKinds(List<idl.IndexSyntheticElementKind> value) { |
+ this._elementKinds = value; |
+ } |
+ |
+ @override |
+ List<int> get elementNameClassMemberIds => _elementNameClassMemberIds ??= <int>[]; |
+ |
+ /** |
+ * Each item of this list corresponds to a unique referenced element. It is |
+ * the identifier of the class member element name, or `null` if the element |
+ * is a top-level element. The list is sorted in ascending order, so that the |
+ * client can quickly check whether an element is referenced in this index. |
+ */ |
+ void set elementNameClassMemberIds(List<int> value) { |
+ assert(value == null || value.every((e) => e >= 0)); |
+ this._elementNameClassMemberIds = value; |
+ } |
+ |
+ @override |
+ List<int> get elementNameParameterIds => _elementNameParameterIds ??= <int>[]; |
+ |
+ /** |
+ * Each item of this list corresponds to a unique referenced element. It is |
+ * the identifier of the named parameter name, or `null` if the element is not |
+ * a named parameter. The list is sorted in ascending order, so that the |
+ * client can quickly check whether an element is referenced in this index. |
+ */ |
+ void set elementNameParameterIds(List<int> value) { |
+ assert(value == null || value.every((e) => e >= 0)); |
+ this._elementNameParameterIds = value; |
+ } |
+ |
+ @override |
+ List<int> get elementNameUnitMemberIds => _elementNameUnitMemberIds ??= <int>[]; |
+ |
+ /** |
+ * Each item of this list corresponds to a unique referenced element. It is |
+ * the identifier of the top-level element name, or `null` if the element is |
+ * the unit. The list is sorted in ascending order, so that the client can |
+ * quickly check whether an element is referenced in this index. |
+ */ |
+ void set elementNameUnitMemberIds(List<int> value) { |
+ assert(value == null || value.every((e) => e >= 0)); |
+ this._elementNameUnitMemberIds = value; |
+ } |
+ |
+ @override |
+ List<int> get elementUnits => _elementUnits ??= <int>[]; |
+ |
+ /** |
+ * Each item of this list corresponds to a unique referenced element. It is |
+ * the index into [unitLibraryUris] and [unitUnitUris] for the library |
+ * specific unit where the element is declared. |
+ */ |
+ void set elementUnits(List<int> value) { |
+ assert(value == null || value.every((e) => e >= 0)); |
+ this._elementUnits = value; |
+ } |
+ |
+ @override |
+ int get nullStringId => _nullStringId ??= 0; |
+ |
+ /** |
+ * Identifier of the null string in [strings]. |
+ */ |
+ void set nullStringId(int value) { |
+ assert(value == null || value >= 0); |
+ this._nullStringId = value; |
+ } |
+ |
+ @override |
+ List<String> get strings => _strings ??= <String>[]; |
+ |
+ /** |
+ * List of unique element strings used in this index. The list is sorted in |
+ * ascending order, so that the client can quickly check the presence of a |
+ * string in this index. |
+ */ |
+ void set strings(List<String> value) { |
+ this._strings = value; |
+ } |
+ |
+ @override |
+ List<int> get unitLibraryUris => _unitLibraryUris ??= <int>[]; |
+ |
+ /** |
+ * Each item of this list corresponds to the library URI of a unique library |
+ * specific unit referenced in the index. It is an index into [strings] list. |
+ */ |
+ void set unitLibraryUris(List<int> value) { |
+ assert(value == null || value.every((e) => e >= 0)); |
+ this._unitLibraryUris = value; |
+ } |
+ |
+ @override |
+ List<int> get unitUnitUris => _unitUnitUris ??= <int>[]; |
+ |
+ /** |
+ * Each item of this list corresponds to the unit URI of a unique library |
+ * specific unit referenced in the index. It is an index into [strings] list. |
+ */ |
+ void set unitUnitUris(List<int> value) { |
+ assert(value == null || value.every((e) => e >= 0)); |
+ this._unitUnitUris = value; |
+ } |
+ |
+ @override |
+ List<bool> get usedElementIsQualifiedFlags => _usedElementIsQualifiedFlags ??= <bool>[]; |
+ |
+ /** |
+ * Each item of this list is the `true` if the corresponding element usage |
+ * is qualified with some prefix. |
+ */ |
+ void set usedElementIsQualifiedFlags(List<bool> value) { |
+ this._usedElementIsQualifiedFlags = value; |
+ } |
+ |
+ @override |
+ List<idl.IndexRelationKind> get usedElementKinds => _usedElementKinds ??= <idl.IndexRelationKind>[]; |
+ |
+ /** |
+ * Each item of this list is the kind of the element usage. |
+ */ |
+ void set usedElementKinds(List<idl.IndexRelationKind> value) { |
+ this._usedElementKinds = value; |
+ } |
+ |
+ @override |
+ List<int> get usedElementLengths => _usedElementLengths ??= <int>[]; |
+ |
+ /** |
+ * Each item of this list is the length of the element usage. |
+ */ |
+ void set usedElementLengths(List<int> value) { |
+ assert(value == null || value.every((e) => e >= 0)); |
+ this._usedElementLengths = value; |
+ } |
+ |
+ @override |
+ List<int> get usedElementOffsets => _usedElementOffsets ??= <int>[]; |
+ |
+ /** |
+ * Each item of this list is the offset of the element usage relative to the |
+ * beginning of the file. |
+ */ |
+ void set usedElementOffsets(List<int> value) { |
+ assert(value == null || value.every((e) => e >= 0)); |
+ this._usedElementOffsets = value; |
+ } |
+ |
+ @override |
+ List<int> get usedElements => _usedElements ??= <int>[]; |
+ |
+ /** |
+ * Each item of this list is the index into [elementUnits], |
+ * [elementNameUnitMemberIds], [elementNameClassMemberIds] and |
+ * [elementNameParameterIds]. The list is sorted in ascending order, so |
+ * that the client can quickly find element references in this index. |
+ */ |
+ void set usedElements(List<int> value) { |
+ assert(value == null || value.every((e) => e >= 0)); |
+ this._usedElements = value; |
+ } |
+ |
+ @override |
+ List<bool> get usedNameIsQualifiedFlags => _usedNameIsQualifiedFlags ??= <bool>[]; |
+ |
+ /** |
+ * Each item of this list is the `true` if the corresponding name usage |
+ * is qualified with some prefix. |
+ */ |
+ void set usedNameIsQualifiedFlags(List<bool> value) { |
+ this._usedNameIsQualifiedFlags = value; |
+ } |
+ |
+ @override |
+ List<idl.IndexRelationKind> get usedNameKinds => _usedNameKinds ??= <idl.IndexRelationKind>[]; |
+ |
+ /** |
+ * Each item of this list is the kind of the name usage. |
+ */ |
+ void set usedNameKinds(List<idl.IndexRelationKind> value) { |
+ this._usedNameKinds = value; |
+ } |
+ |
+ @override |
+ List<int> get usedNameOffsets => _usedNameOffsets ??= <int>[]; |
+ |
+ /** |
+ * Each item of this list is the offset of the name usage relative to the |
+ * beginning of the file. |
+ */ |
+ void set usedNameOffsets(List<int> value) { |
+ assert(value == null || value.every((e) => e >= 0)); |
+ this._usedNameOffsets = value; |
+ } |
+ |
+ @override |
+ List<int> get usedNames => _usedNames ??= <int>[]; |
+ |
+ /** |
+ * Each item of this list is the index into [strings] for a used name. The |
+ * list is sorted in ascending order, so that the client can quickly find |
+ * whether a name is used in this index. |
+ */ |
+ void set usedNames(List<int> value) { |
+ assert(value == null || value.every((e) => e >= 0)); |
+ this._usedNames = value; |
+ } |
+ |
+ AnalysisDriverUnitIndexBuilder({List<idl.IndexSyntheticElementKind> elementKinds, List<int> elementNameClassMemberIds, List<int> elementNameParameterIds, List<int> elementNameUnitMemberIds, List<int> elementUnits, int nullStringId, List<String> strings, List<int> unitLibraryUris, List<int> unitUnitUris, List<bool> usedElementIsQualifiedFlags, List<idl.IndexRelationKind> usedElementKinds, List<int> usedElementLengths, List<int> usedElementOffsets, List<int> usedElements, List<bool> usedNameIsQualifiedFlags, List<idl.IndexRelationKind> usedNameKinds, List<int> usedNameOffsets, List<int> usedNames}) |
+ : _elementKinds = elementKinds, |
+ _elementNameClassMemberIds = elementNameClassMemberIds, |
+ _elementNameParameterIds = elementNameParameterIds, |
+ _elementNameUnitMemberIds = elementNameUnitMemberIds, |
+ _elementUnits = elementUnits, |
+ _nullStringId = nullStringId, |
+ _strings = strings, |
+ _unitLibraryUris = unitLibraryUris, |
+ _unitUnitUris = unitUnitUris, |
+ _usedElementIsQualifiedFlags = usedElementIsQualifiedFlags, |
+ _usedElementKinds = usedElementKinds, |
+ _usedElementLengths = usedElementLengths, |
+ _usedElementOffsets = usedElementOffsets, |
+ _usedElements = usedElements, |
+ _usedNameIsQualifiedFlags = usedNameIsQualifiedFlags, |
+ _usedNameKinds = usedNameKinds, |
+ _usedNameOffsets = usedNameOffsets, |
+ _usedNames = usedNames; |
+ |
+ /** |
+ * Flush [informative] data recursively. |
+ */ |
+ void flushInformative() { |
+ } |
+ |
+ /** |
+ * Accumulate non-[informative] data into [signature]. |
+ */ |
+ void collectApiSignature(api_sig.ApiSignature signature) { |
+ if (this._strings == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._strings.length); |
+ for (var x in this._strings) { |
+ signature.addString(x); |
+ } |
+ } |
+ signature.addInt(this._nullStringId ?? 0); |
+ if (this._unitLibraryUris == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._unitLibraryUris.length); |
+ for (var x in this._unitLibraryUris) { |
+ signature.addInt(x); |
+ } |
+ } |
+ if (this._unitUnitUris == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._unitUnitUris.length); |
+ for (var x in this._unitUnitUris) { |
+ signature.addInt(x); |
+ } |
+ } |
+ if (this._elementKinds == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._elementKinds.length); |
+ for (var x in this._elementKinds) { |
+ signature.addInt(x.index); |
+ } |
+ } |
+ if (this._elementUnits == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._elementUnits.length); |
+ for (var x in this._elementUnits) { |
+ signature.addInt(x); |
+ } |
+ } |
+ if (this._elementNameUnitMemberIds == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._elementNameUnitMemberIds.length); |
+ for (var x in this._elementNameUnitMemberIds) { |
+ signature.addInt(x); |
+ } |
+ } |
+ if (this._elementNameClassMemberIds == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._elementNameClassMemberIds.length); |
+ for (var x in this._elementNameClassMemberIds) { |
+ signature.addInt(x); |
+ } |
+ } |
+ if (this._elementNameParameterIds == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._elementNameParameterIds.length); |
+ for (var x in this._elementNameParameterIds) { |
+ signature.addInt(x); |
+ } |
+ } |
+ if (this._usedElements == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._usedElements.length); |
+ for (var x in this._usedElements) { |
+ signature.addInt(x); |
+ } |
+ } |
+ if (this._usedElementKinds == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._usedElementKinds.length); |
+ for (var x in this._usedElementKinds) { |
+ signature.addInt(x.index); |
+ } |
+ } |
+ if (this._usedElementOffsets == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._usedElementOffsets.length); |
+ for (var x in this._usedElementOffsets) { |
+ signature.addInt(x); |
+ } |
+ } |
+ if (this._usedElementLengths == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._usedElementLengths.length); |
+ for (var x in this._usedElementLengths) { |
+ signature.addInt(x); |
+ } |
+ } |
+ if (this._usedElementIsQualifiedFlags == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._usedElementIsQualifiedFlags.length); |
+ for (var x in this._usedElementIsQualifiedFlags) { |
+ signature.addBool(x); |
+ } |
+ } |
+ if (this._usedNames == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._usedNames.length); |
+ for (var x in this._usedNames) { |
+ signature.addInt(x); |
+ } |
+ } |
+ if (this._usedNameKinds == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._usedNameKinds.length); |
+ for (var x in this._usedNameKinds) { |
+ signature.addInt(x.index); |
+ } |
+ } |
+ if (this._usedNameOffsets == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._usedNameOffsets.length); |
+ for (var x in this._usedNameOffsets) { |
+ signature.addInt(x); |
+ } |
+ } |
+ if (this._usedNameIsQualifiedFlags == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._usedNameIsQualifiedFlags.length); |
+ for (var x in this._usedNameIsQualifiedFlags) { |
+ signature.addBool(x); |
+ } |
+ } |
+ } |
+ |
+ List<int> toBuffer() { |
+ fb.Builder fbBuilder = new fb.Builder(); |
+ return fbBuilder.finish(finish(fbBuilder), "ADUI"); |
+ } |
+ |
+ fb.Offset finish(fb.Builder fbBuilder) { |
+ fb.Offset offset_elementKinds; |
+ fb.Offset offset_elementNameClassMemberIds; |
+ fb.Offset offset_elementNameParameterIds; |
+ fb.Offset offset_elementNameUnitMemberIds; |
+ fb.Offset offset_elementUnits; |
+ fb.Offset offset_strings; |
+ fb.Offset offset_unitLibraryUris; |
+ fb.Offset offset_unitUnitUris; |
+ fb.Offset offset_usedElementIsQualifiedFlags; |
+ fb.Offset offset_usedElementKinds; |
+ fb.Offset offset_usedElementLengths; |
+ fb.Offset offset_usedElementOffsets; |
+ fb.Offset offset_usedElements; |
+ fb.Offset offset_usedNameIsQualifiedFlags; |
+ fb.Offset offset_usedNameKinds; |
+ fb.Offset offset_usedNameOffsets; |
+ fb.Offset offset_usedNames; |
+ if (!(_elementKinds == null || _elementKinds.isEmpty)) { |
+ offset_elementKinds = fbBuilder.writeListUint8(_elementKinds.map((b) => b.index).toList()); |
+ } |
+ if (!(_elementNameClassMemberIds == null || _elementNameClassMemberIds.isEmpty)) { |
+ offset_elementNameClassMemberIds = fbBuilder.writeListUint32(_elementNameClassMemberIds); |
+ } |
+ if (!(_elementNameParameterIds == null || _elementNameParameterIds.isEmpty)) { |
+ offset_elementNameParameterIds = fbBuilder.writeListUint32(_elementNameParameterIds); |
+ } |
+ if (!(_elementNameUnitMemberIds == null || _elementNameUnitMemberIds.isEmpty)) { |
+ offset_elementNameUnitMemberIds = fbBuilder.writeListUint32(_elementNameUnitMemberIds); |
+ } |
+ if (!(_elementUnits == null || _elementUnits.isEmpty)) { |
+ offset_elementUnits = fbBuilder.writeListUint32(_elementUnits); |
+ } |
+ if (!(_strings == null || _strings.isEmpty)) { |
+ offset_strings = fbBuilder.writeList(_strings.map((b) => fbBuilder.writeString(b)).toList()); |
+ } |
+ if (!(_unitLibraryUris == null || _unitLibraryUris.isEmpty)) { |
+ offset_unitLibraryUris = fbBuilder.writeListUint32(_unitLibraryUris); |
+ } |
+ if (!(_unitUnitUris == null || _unitUnitUris.isEmpty)) { |
+ offset_unitUnitUris = fbBuilder.writeListUint32(_unitUnitUris); |
+ } |
+ if (!(_usedElementIsQualifiedFlags == null || _usedElementIsQualifiedFlags.isEmpty)) { |
+ offset_usedElementIsQualifiedFlags = fbBuilder.writeListBool(_usedElementIsQualifiedFlags); |
+ } |
+ if (!(_usedElementKinds == null || _usedElementKinds.isEmpty)) { |
+ offset_usedElementKinds = fbBuilder.writeListUint8(_usedElementKinds.map((b) => b.index).toList()); |
+ } |
+ if (!(_usedElementLengths == null || _usedElementLengths.isEmpty)) { |
+ offset_usedElementLengths = fbBuilder.writeListUint32(_usedElementLengths); |
+ } |
+ if (!(_usedElementOffsets == null || _usedElementOffsets.isEmpty)) { |
+ offset_usedElementOffsets = fbBuilder.writeListUint32(_usedElementOffsets); |
+ } |
+ if (!(_usedElements == null || _usedElements.isEmpty)) { |
+ offset_usedElements = fbBuilder.writeListUint32(_usedElements); |
+ } |
+ if (!(_usedNameIsQualifiedFlags == null || _usedNameIsQualifiedFlags.isEmpty)) { |
+ offset_usedNameIsQualifiedFlags = fbBuilder.writeListBool(_usedNameIsQualifiedFlags); |
+ } |
+ if (!(_usedNameKinds == null || _usedNameKinds.isEmpty)) { |
+ offset_usedNameKinds = fbBuilder.writeListUint8(_usedNameKinds.map((b) => b.index).toList()); |
+ } |
+ if (!(_usedNameOffsets == null || _usedNameOffsets.isEmpty)) { |
+ offset_usedNameOffsets = fbBuilder.writeListUint32(_usedNameOffsets); |
+ } |
+ if (!(_usedNames == null || _usedNames.isEmpty)) { |
+ offset_usedNames = fbBuilder.writeListUint32(_usedNames); |
+ } |
+ fbBuilder.startTable(); |
+ if (offset_elementKinds != null) { |
+ fbBuilder.addOffset(4, offset_elementKinds); |
+ } |
+ if (offset_elementNameClassMemberIds != null) { |
+ fbBuilder.addOffset(7, offset_elementNameClassMemberIds); |
+ } |
+ if (offset_elementNameParameterIds != null) { |
+ fbBuilder.addOffset(8, offset_elementNameParameterIds); |
+ } |
+ if (offset_elementNameUnitMemberIds != null) { |
+ fbBuilder.addOffset(6, offset_elementNameUnitMemberIds); |
+ } |
+ if (offset_elementUnits != null) { |
+ fbBuilder.addOffset(5, offset_elementUnits); |
+ } |
+ if (_nullStringId != null && _nullStringId != 0) { |
+ fbBuilder.addUint32(1, _nullStringId); |
+ } |
+ if (offset_strings != null) { |
+ fbBuilder.addOffset(0, offset_strings); |
+ } |
+ if (offset_unitLibraryUris != null) { |
+ fbBuilder.addOffset(2, offset_unitLibraryUris); |
+ } |
+ if (offset_unitUnitUris != null) { |
+ fbBuilder.addOffset(3, offset_unitUnitUris); |
+ } |
+ if (offset_usedElementIsQualifiedFlags != null) { |
+ fbBuilder.addOffset(13, offset_usedElementIsQualifiedFlags); |
+ } |
+ if (offset_usedElementKinds != null) { |
+ fbBuilder.addOffset(10, offset_usedElementKinds); |
+ } |
+ if (offset_usedElementLengths != null) { |
+ fbBuilder.addOffset(12, offset_usedElementLengths); |
+ } |
+ if (offset_usedElementOffsets != null) { |
+ fbBuilder.addOffset(11, offset_usedElementOffsets); |
+ } |
+ if (offset_usedElements != null) { |
+ fbBuilder.addOffset(9, offset_usedElements); |
+ } |
+ if (offset_usedNameIsQualifiedFlags != null) { |
+ fbBuilder.addOffset(17, offset_usedNameIsQualifiedFlags); |
+ } |
+ if (offset_usedNameKinds != null) { |
+ fbBuilder.addOffset(15, offset_usedNameKinds); |
+ } |
+ if (offset_usedNameOffsets != null) { |
+ fbBuilder.addOffset(16, offset_usedNameOffsets); |
+ } |
+ if (offset_usedNames != null) { |
+ fbBuilder.addOffset(14, offset_usedNames); |
+ } |
+ return fbBuilder.endTable(); |
+ } |
+} |
+ |
+idl.AnalysisDriverUnitIndex readAnalysisDriverUnitIndex(List<int> buffer) { |
+ fb.BufferContext rootRef = new fb.BufferContext.fromBytes(buffer); |
+ return const _AnalysisDriverUnitIndexReader().read(rootRef, 0); |
+} |
+ |
+class _AnalysisDriverUnitIndexReader extends fb.TableReader<_AnalysisDriverUnitIndexImpl> { |
+ const _AnalysisDriverUnitIndexReader(); |
+ |
+ @override |
+ _AnalysisDriverUnitIndexImpl createObject(fb.BufferContext bc, int offset) => new _AnalysisDriverUnitIndexImpl(bc, offset); |
+} |
+ |
+class _AnalysisDriverUnitIndexImpl extends Object with _AnalysisDriverUnitIndexMixin implements idl.AnalysisDriverUnitIndex { |
+ final fb.BufferContext _bc; |
+ final int _bcOffset; |
+ |
+ _AnalysisDriverUnitIndexImpl(this._bc, this._bcOffset); |
+ |
+ List<idl.IndexSyntheticElementKind> _elementKinds; |
+ List<int> _elementNameClassMemberIds; |
+ List<int> _elementNameParameterIds; |
+ List<int> _elementNameUnitMemberIds; |
+ List<int> _elementUnits; |
+ int _nullStringId; |
+ List<String> _strings; |
+ List<int> _unitLibraryUris; |
+ List<int> _unitUnitUris; |
+ List<bool> _usedElementIsQualifiedFlags; |
+ List<idl.IndexRelationKind> _usedElementKinds; |
+ List<int> _usedElementLengths; |
+ List<int> _usedElementOffsets; |
+ List<int> _usedElements; |
+ List<bool> _usedNameIsQualifiedFlags; |
+ List<idl.IndexRelationKind> _usedNameKinds; |
+ List<int> _usedNameOffsets; |
+ List<int> _usedNames; |
+ |
+ @override |
+ List<idl.IndexSyntheticElementKind> get elementKinds { |
+ _elementKinds ??= const fb.ListReader<idl.IndexSyntheticElementKind>(const _IndexSyntheticElementKindReader()).vTableGet(_bc, _bcOffset, 4, const <idl.IndexSyntheticElementKind>[]); |
+ return _elementKinds; |
+ } |
+ |
+ @override |
+ List<int> get elementNameClassMemberIds { |
+ _elementNameClassMemberIds ??= const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 7, const <int>[]); |
+ return _elementNameClassMemberIds; |
+ } |
+ |
+ @override |
+ List<int> get elementNameParameterIds { |
+ _elementNameParameterIds ??= const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 8, const <int>[]); |
+ return _elementNameParameterIds; |
+ } |
+ |
+ @override |
+ List<int> get elementNameUnitMemberIds { |
+ _elementNameUnitMemberIds ??= const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 6, const <int>[]); |
+ return _elementNameUnitMemberIds; |
+ } |
+ |
+ @override |
+ List<int> get elementUnits { |
+ _elementUnits ??= const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 5, const <int>[]); |
+ return _elementUnits; |
+ } |
+ |
+ @override |
+ int get nullStringId { |
+ _nullStringId ??= const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 1, 0); |
+ return _nullStringId; |
+ } |
+ |
+ @override |
+ List<String> get strings { |
+ _strings ??= const fb.ListReader<String>(const fb.StringReader()).vTableGet(_bc, _bcOffset, 0, const <String>[]); |
+ return _strings; |
+ } |
+ |
+ @override |
+ List<int> get unitLibraryUris { |
+ _unitLibraryUris ??= const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 2, const <int>[]); |
+ return _unitLibraryUris; |
+ } |
+ |
+ @override |
+ List<int> get unitUnitUris { |
+ _unitUnitUris ??= const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 3, const <int>[]); |
+ return _unitUnitUris; |
+ } |
+ |
+ @override |
+ List<bool> get usedElementIsQualifiedFlags { |
+ _usedElementIsQualifiedFlags ??= const fb.BoolListReader().vTableGet(_bc, _bcOffset, 13, const <bool>[]); |
+ return _usedElementIsQualifiedFlags; |
+ } |
+ |
+ @override |
+ List<idl.IndexRelationKind> get usedElementKinds { |
+ _usedElementKinds ??= const fb.ListReader<idl.IndexRelationKind>(const _IndexRelationKindReader()).vTableGet(_bc, _bcOffset, 10, const <idl.IndexRelationKind>[]); |
+ return _usedElementKinds; |
+ } |
+ |
+ @override |
+ List<int> get usedElementLengths { |
+ _usedElementLengths ??= const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 12, const <int>[]); |
+ return _usedElementLengths; |
+ } |
+ |
+ @override |
+ List<int> get usedElementOffsets { |
+ _usedElementOffsets ??= const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 11, const <int>[]); |
+ return _usedElementOffsets; |
+ } |
+ |
+ @override |
+ List<int> get usedElements { |
+ _usedElements ??= const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 9, const <int>[]); |
+ return _usedElements; |
+ } |
+ |
+ @override |
+ List<bool> get usedNameIsQualifiedFlags { |
+ _usedNameIsQualifiedFlags ??= const fb.BoolListReader().vTableGet(_bc, _bcOffset, 17, const <bool>[]); |
+ return _usedNameIsQualifiedFlags; |
+ } |
+ |
+ @override |
+ List<idl.IndexRelationKind> get usedNameKinds { |
+ _usedNameKinds ??= const fb.ListReader<idl.IndexRelationKind>(const _IndexRelationKindReader()).vTableGet(_bc, _bcOffset, 15, const <idl.IndexRelationKind>[]); |
+ return _usedNameKinds; |
+ } |
+ |
+ @override |
+ List<int> get usedNameOffsets { |
+ _usedNameOffsets ??= const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 16, const <int>[]); |
+ return _usedNameOffsets; |
+ } |
+ |
+ @override |
+ List<int> get usedNames { |
+ _usedNames ??= const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 14, const <int>[]); |
+ return _usedNames; |
+ } |
+} |
+ |
+abstract class _AnalysisDriverUnitIndexMixin implements idl.AnalysisDriverUnitIndex { |
+ @override |
+ Map<String, Object> toJson() { |
+ Map<String, Object> _result = <String, Object>{}; |
+ if (elementKinds.isNotEmpty) _result["elementKinds"] = elementKinds.map((_value) => _value.toString().split('.')[1]).toList(); |
+ if (elementNameClassMemberIds.isNotEmpty) _result["elementNameClassMemberIds"] = elementNameClassMemberIds; |
+ if (elementNameParameterIds.isNotEmpty) _result["elementNameParameterIds"] = elementNameParameterIds; |
+ if (elementNameUnitMemberIds.isNotEmpty) _result["elementNameUnitMemberIds"] = elementNameUnitMemberIds; |
+ if (elementUnits.isNotEmpty) _result["elementUnits"] = elementUnits; |
+ if (nullStringId != 0) _result["nullStringId"] = nullStringId; |
+ if (strings.isNotEmpty) _result["strings"] = strings; |
+ if (unitLibraryUris.isNotEmpty) _result["unitLibraryUris"] = unitLibraryUris; |
+ if (unitUnitUris.isNotEmpty) _result["unitUnitUris"] = unitUnitUris; |
+ if (usedElementIsQualifiedFlags.isNotEmpty) _result["usedElementIsQualifiedFlags"] = usedElementIsQualifiedFlags; |
+ if (usedElementKinds.isNotEmpty) _result["usedElementKinds"] = usedElementKinds.map((_value) => _value.toString().split('.')[1]).toList(); |
+ if (usedElementLengths.isNotEmpty) _result["usedElementLengths"] = usedElementLengths; |
+ if (usedElementOffsets.isNotEmpty) _result["usedElementOffsets"] = usedElementOffsets; |
+ if (usedElements.isNotEmpty) _result["usedElements"] = usedElements; |
+ if (usedNameIsQualifiedFlags.isNotEmpty) _result["usedNameIsQualifiedFlags"] = usedNameIsQualifiedFlags; |
+ if (usedNameKinds.isNotEmpty) _result["usedNameKinds"] = usedNameKinds.map((_value) => _value.toString().split('.')[1]).toList(); |
+ if (usedNameOffsets.isNotEmpty) _result["usedNameOffsets"] = usedNameOffsets; |
+ if (usedNames.isNotEmpty) _result["usedNames"] = usedNames; |
+ return _result; |
+ } |
+ |
+ @override |
+ Map<String, Object> toMap() => { |
+ "elementKinds": elementKinds, |
+ "elementNameClassMemberIds": elementNameClassMemberIds, |
+ "elementNameParameterIds": elementNameParameterIds, |
+ "elementNameUnitMemberIds": elementNameUnitMemberIds, |
+ "elementUnits": elementUnits, |
+ "nullStringId": nullStringId, |
+ "strings": strings, |
+ "unitLibraryUris": unitLibraryUris, |
+ "unitUnitUris": unitUnitUris, |
+ "usedElementIsQualifiedFlags": usedElementIsQualifiedFlags, |
+ "usedElementKinds": usedElementKinds, |
+ "usedElementLengths": usedElementLengths, |
+ "usedElementOffsets": usedElementOffsets, |
+ "usedElements": usedElements, |
+ "usedNameIsQualifiedFlags": usedNameIsQualifiedFlags, |
+ "usedNameKinds": usedNameKinds, |
+ "usedNameOffsets": usedNameOffsets, |
+ "usedNames": usedNames, |
+ }; |
+ |
+ @override |
+ String toString() => convert.JSON.encode(toJson()); |
+} |
+ |
class CodeRangeBuilder extends Object with _CodeRangeMixin implements idl.CodeRange { |
int _length; |
int _offset; |