| 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 3753a247039ffd59aeada4e2e638b102db866052..dd3901a8bb8f454ad1a479530a32136b17c8d1c4 100644
|
| --- a/pkg/analyzer/lib/src/summary/format.dart
|
| +++ b/pkg/analyzer/lib/src/summary/format.dart
|
| @@ -1509,7 +1509,8 @@ class PackageIndexBuilder extends Object with _PackageIndexMixin implements idl.
|
|
|
| /**
|
| * Each item of this list corresponds to the library URI of a unique library
|
| - * specific unit referenced in the [PackageIndex].
|
| + * specific unit referenced in the [PackageIndex]. It is an index into
|
| + * [strings] list.
|
| */
|
| void set unitLibraryUris(List<int> _value) {
|
| assert(!_finished);
|
| @@ -1533,7 +1534,8 @@ class PackageIndexBuilder extends Object with _PackageIndexMixin implements idl.
|
|
|
| /**
|
| * Each item of this list corresponds to the unit URI of a unique library
|
| - * specific unit referenced in the [PackageIndex].
|
| + * specific unit referenced in the [PackageIndex]. It is an index into
|
| + * [strings] list.
|
| */
|
| void set unitUnitUris(List<int> _value) {
|
| assert(!_finished);
|
| @@ -1720,6 +1722,9 @@ class UnitIndexBuilder extends Object with _UnitIndexMixin implements idl.UnitIn
|
| List<int> _usedElementLengths;
|
| List<int> _usedElementOffsets;
|
| List<int> _usedElements;
|
| + List<idl.IndexRelationKind> _usedNameKinds;
|
| + List<int> _usedNameOffsets;
|
| + List<int> _usedNames;
|
|
|
| @override
|
| List<idl.IndexNameKind> get definedNameKinds => _definedNameKinds ??= <idl.IndexNameKind>[];
|
| @@ -1823,7 +1828,45 @@ class UnitIndexBuilder extends Object with _UnitIndexMixin implements idl.UnitIn
|
| _usedElements = _value;
|
| }
|
|
|
| - UnitIndexBuilder({List<idl.IndexNameKind> definedNameKinds, List<int> definedNameOffsets, List<int> definedNames, int unit, List<idl.IndexRelationKind> usedElementKinds, List<int> usedElementLengths, List<int> usedElementOffsets, List<int> usedElements})
|
| + @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) {
|
| + assert(!_finished);
|
| + _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(!_finished);
|
| + assert(_value == null || _value.every((e) => e >= 0));
|
| + _usedNameOffsets = _value;
|
| + }
|
| +
|
| + @override
|
| + List<int> get usedNames => _usedNames ??= <int>[];
|
| +
|
| + /**
|
| + * Each item of this list is the index into [PackageIndex.strings] for a
|
| + * used name. The list is sorted in ascending order, so that the client can
|
| + * quickly find name uses in this [UnitIndex].
|
| + */
|
| + void set usedNames(List<int> _value) {
|
| + assert(!_finished);
|
| + assert(_value == null || _value.every((e) => e >= 0));
|
| + _usedNames = _value;
|
| + }
|
| +
|
| + UnitIndexBuilder({List<idl.IndexNameKind> definedNameKinds, List<int> definedNameOffsets, List<int> definedNames, int unit, List<idl.IndexRelationKind> usedElementKinds, List<int> usedElementLengths, List<int> usedElementOffsets, List<int> usedElements, List<idl.IndexRelationKind> usedNameKinds, List<int> usedNameOffsets, List<int> usedNames})
|
| : _definedNameKinds = definedNameKinds,
|
| _definedNameOffsets = definedNameOffsets,
|
| _definedNames = definedNames,
|
| @@ -1831,7 +1874,10 @@ class UnitIndexBuilder extends Object with _UnitIndexMixin implements idl.UnitIn
|
| _usedElementKinds = usedElementKinds,
|
| _usedElementLengths = usedElementLengths,
|
| _usedElementOffsets = usedElementOffsets,
|
| - _usedElements = usedElements;
|
| + _usedElements = usedElements,
|
| + _usedNameKinds = usedNameKinds,
|
| + _usedNameOffsets = usedNameOffsets,
|
| + _usedNames = usedNames;
|
|
|
| fb.Offset finish(fb.Builder fbBuilder) {
|
| assert(!_finished);
|
| @@ -1843,6 +1889,9 @@ class UnitIndexBuilder extends Object with _UnitIndexMixin implements idl.UnitIn
|
| fb.Offset offset_usedElementLengths;
|
| fb.Offset offset_usedElementOffsets;
|
| fb.Offset offset_usedElements;
|
| + fb.Offset offset_usedNameKinds;
|
| + fb.Offset offset_usedNameOffsets;
|
| + fb.Offset offset_usedNames;
|
| if (!(_definedNameKinds == null || _definedNameKinds.isEmpty)) {
|
| offset_definedNameKinds = fbBuilder.writeListUint8(_definedNameKinds.map((b) => b.index).toList());
|
| }
|
| @@ -1864,6 +1913,15 @@ class UnitIndexBuilder extends Object with _UnitIndexMixin implements idl.UnitIn
|
| if (!(_usedElements == null || _usedElements.isEmpty)) {
|
| offset_usedElements = fbBuilder.writeListUint32(_usedElements);
|
| }
|
| + 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_definedNameKinds != null) {
|
| fbBuilder.addOffset(6, offset_definedNameKinds);
|
| @@ -1889,6 +1947,15 @@ class UnitIndexBuilder extends Object with _UnitIndexMixin implements idl.UnitIn
|
| if (offset_usedElements != null) {
|
| fbBuilder.addOffset(3, offset_usedElements);
|
| }
|
| + if (offset_usedNameKinds != null) {
|
| + fbBuilder.addOffset(10, offset_usedNameKinds);
|
| + }
|
| + if (offset_usedNameOffsets != null) {
|
| + fbBuilder.addOffset(9, offset_usedNameOffsets);
|
| + }
|
| + if (offset_usedNames != null) {
|
| + fbBuilder.addOffset(8, offset_usedNames);
|
| + }
|
| return fbBuilder.endTable();
|
| }
|
| }
|
| @@ -1913,6 +1980,9 @@ class _UnitIndexImpl extends Object with _UnitIndexMixin implements idl.UnitInde
|
| List<int> _usedElementLengths;
|
| List<int> _usedElementOffsets;
|
| List<int> _usedElements;
|
| + List<idl.IndexRelationKind> _usedNameKinds;
|
| + List<int> _usedNameOffsets;
|
| + List<int> _usedNames;
|
|
|
| @override
|
| List<idl.IndexNameKind> get definedNameKinds {
|
| @@ -1961,6 +2031,24 @@ class _UnitIndexImpl extends Object with _UnitIndexMixin implements idl.UnitInde
|
| _usedElements ??= const fb.Uint32ListReader().vTableGet(_bp, 3, const <int>[]);
|
| return _usedElements;
|
| }
|
| +
|
| + @override
|
| + List<idl.IndexRelationKind> get usedNameKinds {
|
| + _usedNameKinds ??= const fb.ListReader<idl.IndexRelationKind>(const _IndexRelationKindReader()).vTableGet(_bp, 10, const <idl.IndexRelationKind>[]);
|
| + return _usedNameKinds;
|
| + }
|
| +
|
| + @override
|
| + List<int> get usedNameOffsets {
|
| + _usedNameOffsets ??= const fb.Uint32ListReader().vTableGet(_bp, 9, const <int>[]);
|
| + return _usedNameOffsets;
|
| + }
|
| +
|
| + @override
|
| + List<int> get usedNames {
|
| + _usedNames ??= const fb.Uint32ListReader().vTableGet(_bp, 8, const <int>[]);
|
| + return _usedNames;
|
| + }
|
| }
|
|
|
| abstract class _UnitIndexMixin implements idl.UnitIndex {
|
| @@ -1975,6 +2063,9 @@ abstract class _UnitIndexMixin implements idl.UnitIndex {
|
| if (usedElementLengths.isNotEmpty) _result["usedElementLengths"] = usedElementLengths;
|
| if (usedElementOffsets.isNotEmpty) _result["usedElementOffsets"] = usedElementOffsets;
|
| if (usedElements.isNotEmpty) _result["usedElements"] = usedElements;
|
| + 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;
|
| }
|
|
|
| @@ -1988,6 +2079,9 @@ abstract class _UnitIndexMixin implements idl.UnitIndex {
|
| "usedElementLengths": usedElementLengths,
|
| "usedElementOffsets": usedElementOffsets,
|
| "usedElements": usedElements,
|
| + "usedNameKinds": usedNameKinds,
|
| + "usedNameOffsets": usedNameOffsets,
|
| + "usedNames": usedNames,
|
| };
|
|
|
| @override
|
|
|