| 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 be1de5469aec441fe7a762e6561fa2617fc1a872..626f4431234a2f108dd3e8aec202d43c8582f3b1 100644
|
| --- a/pkg/analyzer/lib/src/summary/format.dart
|
| +++ b/pkg/analyzer/lib/src/summary/format.dart
|
| @@ -2099,6 +2099,7 @@ abstract class _LinkedUnitMixin implements idl.LinkedUnit {
|
|
|
| class PackageBundleBuilder extends Object with _PackageBundleMixin implements idl.PackageBundle {
|
| String _apiSignature;
|
| + List<PackageDependencyInfoBuilder> _dependencies;
|
| List<LinkedLibraryBuilder> _linkedLibraries;
|
| List<String> _linkedLibraryUris;
|
| int _majorVersion;
|
| @@ -2120,6 +2121,16 @@ class PackageBundleBuilder extends Object with _PackageBundleMixin implements id
|
| }
|
|
|
| @override
|
| + List<PackageDependencyInfoBuilder> get dependencies => _dependencies ??= <PackageDependencyInfoBuilder>[];
|
| +
|
| + /**
|
| + * Information about the packages this package depends on, if known.
|
| + */
|
| + void set dependencies(List<PackageDependencyInfoBuilder> _value) {
|
| + _dependencies = _value;
|
| + }
|
| +
|
| + @override
|
| List<LinkedLibraryBuilder> get linkedLibraries => _linkedLibraries ??= <LinkedLibraryBuilder>[];
|
|
|
| /**
|
| @@ -2195,8 +2206,9 @@ class PackageBundleBuilder extends Object with _PackageBundleMixin implements id
|
| _unlinkedUnitUris = _value;
|
| }
|
|
|
| - PackageBundleBuilder({String apiSignature, List<LinkedLibraryBuilder> linkedLibraries, List<String> linkedLibraryUris, int majorVersion, int minorVersion, List<String> unlinkedUnitHashes, List<UnlinkedUnitBuilder> unlinkedUnits, List<String> unlinkedUnitUris})
|
| + PackageBundleBuilder({String apiSignature, List<PackageDependencyInfoBuilder> dependencies, List<LinkedLibraryBuilder> linkedLibraries, List<String> linkedLibraryUris, int majorVersion, int minorVersion, List<String> unlinkedUnitHashes, List<UnlinkedUnitBuilder> unlinkedUnits, List<String> unlinkedUnitUris})
|
| : _apiSignature = apiSignature,
|
| + _dependencies = dependencies,
|
| _linkedLibraries = linkedLibraries,
|
| _linkedLibraryUris = linkedLibraryUris,
|
| _majorVersion = majorVersion,
|
| @@ -2209,6 +2221,7 @@ class PackageBundleBuilder extends Object with _PackageBundleMixin implements id
|
| * Flush [informative] data recursively.
|
| */
|
| void flushInformative() {
|
| + _dependencies = null;
|
| _linkedLibraries?.forEach((b) => b.flushInformative());
|
| _unlinkedUnitHashes = null;
|
| _unlinkedUnits?.forEach((b) => b.flushInformative());
|
| @@ -2262,6 +2275,7 @@ class PackageBundleBuilder extends Object with _PackageBundleMixin implements id
|
|
|
| fb.Offset finish(fb.Builder fbBuilder) {
|
| fb.Offset offset_apiSignature;
|
| + fb.Offset offset_dependencies;
|
| fb.Offset offset_linkedLibraries;
|
| fb.Offset offset_linkedLibraryUris;
|
| fb.Offset offset_unlinkedUnitHashes;
|
| @@ -2270,6 +2284,9 @@ class PackageBundleBuilder extends Object with _PackageBundleMixin implements id
|
| if (_apiSignature != null) {
|
| offset_apiSignature = fbBuilder.writeString(_apiSignature);
|
| }
|
| + if (!(_dependencies == null || _dependencies.isEmpty)) {
|
| + offset_dependencies = fbBuilder.writeList(_dependencies.map((b) => b.finish(fbBuilder)).toList());
|
| + }
|
| if (!(_linkedLibraries == null || _linkedLibraries.isEmpty)) {
|
| offset_linkedLibraries = fbBuilder.writeList(_linkedLibraries.map((b) => b.finish(fbBuilder)).toList());
|
| }
|
| @@ -2289,6 +2306,9 @@ class PackageBundleBuilder extends Object with _PackageBundleMixin implements id
|
| if (offset_apiSignature != null) {
|
| fbBuilder.addOffset(7, offset_apiSignature);
|
| }
|
| + if (offset_dependencies != null) {
|
| + fbBuilder.addOffset(8, offset_dependencies);
|
| + }
|
| if (offset_linkedLibraries != null) {
|
| fbBuilder.addOffset(0, offset_linkedLibraries);
|
| }
|
| @@ -2333,6 +2353,7 @@ class _PackageBundleImpl extends Object with _PackageBundleMixin implements idl.
|
| _PackageBundleImpl(this._bc, this._bcOffset);
|
|
|
| String _apiSignature;
|
| + List<idl.PackageDependencyInfo> _dependencies;
|
| List<idl.LinkedLibrary> _linkedLibraries;
|
| List<String> _linkedLibraryUris;
|
| int _majorVersion;
|
| @@ -2348,6 +2369,12 @@ class _PackageBundleImpl extends Object with _PackageBundleMixin implements idl.
|
| }
|
|
|
| @override
|
| + List<idl.PackageDependencyInfo> get dependencies {
|
| + _dependencies ??= const fb.ListReader<idl.PackageDependencyInfo>(const _PackageDependencyInfoReader()).vTableGet(_bc, _bcOffset, 8, const <idl.PackageDependencyInfo>[]);
|
| + return _dependencies;
|
| + }
|
| +
|
| + @override
|
| List<idl.LinkedLibrary> get linkedLibraries {
|
| _linkedLibraries ??= const fb.ListReader<idl.LinkedLibrary>(const _LinkedLibraryReader()).vTableGet(_bc, _bcOffset, 0, const <idl.LinkedLibrary>[]);
|
| return _linkedLibraries;
|
| @@ -2395,6 +2422,7 @@ abstract class _PackageBundleMixin implements idl.PackageBundle {
|
| Map<String, Object> toJson() {
|
| Map<String, Object> _result = <String, Object>{};
|
| if (apiSignature != '') _result["apiSignature"] = apiSignature;
|
| + if (dependencies.isNotEmpty) _result["dependencies"] = dependencies.map((_value) => _value.toJson()).toList();
|
| if (linkedLibraries.isNotEmpty) _result["linkedLibraries"] = linkedLibraries.map((_value) => _value.toJson()).toList();
|
| if (linkedLibraryUris.isNotEmpty) _result["linkedLibraryUris"] = linkedLibraryUris;
|
| if (majorVersion != 0) _result["majorVersion"] = majorVersion;
|
| @@ -2408,6 +2436,7 @@ abstract class _PackageBundleMixin implements idl.PackageBundle {
|
| @override
|
| Map<String, Object> toMap() => {
|
| "apiSignature": apiSignature,
|
| + "dependencies": dependencies,
|
| "linkedLibraries": linkedLibraries,
|
| "linkedLibraryUris": linkedLibraryUris,
|
| "majorVersion": majorVersion,
|
| @@ -2421,6 +2450,212 @@ abstract class _PackageBundleMixin implements idl.PackageBundle {
|
| String toString() => convert.JSON.encode(toJson());
|
| }
|
|
|
| +class PackageDependencyInfoBuilder extends Object with _PackageDependencyInfoMixin implements idl.PackageDependencyInfo {
|
| + String _apiSignature;
|
| + List<String> _includedPackageNames;
|
| + bool _includesDartUris;
|
| + bool _includesFileUris;
|
| + String _summaryPath;
|
| +
|
| + @override
|
| + String get apiSignature => _apiSignature ??= '';
|
| +
|
| + /**
|
| + * API signature of this dependency.
|
| + */
|
| + void set apiSignature(String _value) {
|
| + _apiSignature = _value;
|
| + }
|
| +
|
| + @override
|
| + List<String> get includedPackageNames => _includedPackageNames ??= <String>[];
|
| +
|
| + /**
|
| + * If this dependency summarizes any files whose URI takes the form
|
| + * "package:<package_name>/...", a list of all such package names, sorted
|
| + * lexicographically. Otherwise empty.
|
| + */
|
| + void set includedPackageNames(List<String> _value) {
|
| + _includedPackageNames = _value;
|
| + }
|
| +
|
| + @override
|
| + bool get includesDartUris => _includesDartUris ??= false;
|
| +
|
| + /**
|
| + * Indicates whether this dependency summarizes any files whose URI takes the
|
| + * form "dart:...".
|
| + */
|
| + void set includesDartUris(bool _value) {
|
| + _includesDartUris = _value;
|
| + }
|
| +
|
| + @override
|
| + bool get includesFileUris => _includesFileUris ??= false;
|
| +
|
| + /**
|
| + * Indicates whether this dependency summarizes any files whose URI takes the
|
| + * form "file:...".
|
| + */
|
| + void set includesFileUris(bool _value) {
|
| + _includesFileUris = _value;
|
| + }
|
| +
|
| + @override
|
| + String get summaryPath => _summaryPath ??= '';
|
| +
|
| + /**
|
| + * Relative path to the summary file for this dependency. This is intended as
|
| + * a hint to help the analysis server locate summaries of dependencies. We
|
| + * don't specify precisely what this path is relative to, but we expect it to
|
| + * be relative to a directory the analysis server can find (e.g. for projects
|
| + * built using Bazel, it would be relative to the "bazel-bin" directory).
|
| + *
|
| + * Absent if the path is not known.
|
| + */
|
| + void set summaryPath(String _value) {
|
| + _summaryPath = _value;
|
| + }
|
| +
|
| + PackageDependencyInfoBuilder({String apiSignature, List<String> includedPackageNames, bool includesDartUris, bool includesFileUris, String summaryPath})
|
| + : _apiSignature = apiSignature,
|
| + _includedPackageNames = includedPackageNames,
|
| + _includesDartUris = includesDartUris,
|
| + _includesFileUris = includesFileUris,
|
| + _summaryPath = summaryPath;
|
| +
|
| + /**
|
| + * Flush [informative] data recursively.
|
| + */
|
| + void flushInformative() {
|
| + }
|
| +
|
| + /**
|
| + * Accumulate non-[informative] data into [signature].
|
| + */
|
| + void collectApiSignature(api_sig.ApiSignature signature) {
|
| + signature.addString(this._apiSignature ?? '');
|
| + signature.addString(this._summaryPath ?? '');
|
| + if (this._includedPackageNames == null) {
|
| + signature.addInt(0);
|
| + } else {
|
| + signature.addInt(this._includedPackageNames.length);
|
| + for (var x in this._includedPackageNames) {
|
| + signature.addString(x);
|
| + }
|
| + }
|
| + signature.addBool(this._includesFileUris == true);
|
| + signature.addBool(this._includesDartUris == true);
|
| + }
|
| +
|
| + fb.Offset finish(fb.Builder fbBuilder) {
|
| + fb.Offset offset_apiSignature;
|
| + fb.Offset offset_includedPackageNames;
|
| + fb.Offset offset_summaryPath;
|
| + if (_apiSignature != null) {
|
| + offset_apiSignature = fbBuilder.writeString(_apiSignature);
|
| + }
|
| + if (!(_includedPackageNames == null || _includedPackageNames.isEmpty)) {
|
| + offset_includedPackageNames = fbBuilder.writeList(_includedPackageNames.map((b) => fbBuilder.writeString(b)).toList());
|
| + }
|
| + if (_summaryPath != null) {
|
| + offset_summaryPath = fbBuilder.writeString(_summaryPath);
|
| + }
|
| + fbBuilder.startTable();
|
| + if (offset_apiSignature != null) {
|
| + fbBuilder.addOffset(0, offset_apiSignature);
|
| + }
|
| + if (offset_includedPackageNames != null) {
|
| + fbBuilder.addOffset(2, offset_includedPackageNames);
|
| + }
|
| + if (_includesDartUris == true) {
|
| + fbBuilder.addBool(4, true);
|
| + }
|
| + if (_includesFileUris == true) {
|
| + fbBuilder.addBool(3, true);
|
| + }
|
| + if (offset_summaryPath != null) {
|
| + fbBuilder.addOffset(1, offset_summaryPath);
|
| + }
|
| + return fbBuilder.endTable();
|
| + }
|
| +}
|
| +
|
| +class _PackageDependencyInfoReader extends fb.TableReader<_PackageDependencyInfoImpl> {
|
| + const _PackageDependencyInfoReader();
|
| +
|
| + @override
|
| + _PackageDependencyInfoImpl createObject(fb.BufferContext bc, int offset) => new _PackageDependencyInfoImpl(bc, offset);
|
| +}
|
| +
|
| +class _PackageDependencyInfoImpl extends Object with _PackageDependencyInfoMixin implements idl.PackageDependencyInfo {
|
| + final fb.BufferContext _bc;
|
| + final int _bcOffset;
|
| +
|
| + _PackageDependencyInfoImpl(this._bc, this._bcOffset);
|
| +
|
| + String _apiSignature;
|
| + List<String> _includedPackageNames;
|
| + bool _includesDartUris;
|
| + bool _includesFileUris;
|
| + String _summaryPath;
|
| +
|
| + @override
|
| + String get apiSignature {
|
| + _apiSignature ??= const fb.StringReader().vTableGet(_bc, _bcOffset, 0, '');
|
| + return _apiSignature;
|
| + }
|
| +
|
| + @override
|
| + List<String> get includedPackageNames {
|
| + _includedPackageNames ??= const fb.ListReader<String>(const fb.StringReader()).vTableGet(_bc, _bcOffset, 2, const <String>[]);
|
| + return _includedPackageNames;
|
| + }
|
| +
|
| + @override
|
| + bool get includesDartUris {
|
| + _includesDartUris ??= const fb.BoolReader().vTableGet(_bc, _bcOffset, 4, false);
|
| + return _includesDartUris;
|
| + }
|
| +
|
| + @override
|
| + bool get includesFileUris {
|
| + _includesFileUris ??= const fb.BoolReader().vTableGet(_bc, _bcOffset, 3, false);
|
| + return _includesFileUris;
|
| + }
|
| +
|
| + @override
|
| + String get summaryPath {
|
| + _summaryPath ??= const fb.StringReader().vTableGet(_bc, _bcOffset, 1, '');
|
| + return _summaryPath;
|
| + }
|
| +}
|
| +
|
| +abstract class _PackageDependencyInfoMixin implements idl.PackageDependencyInfo {
|
| + @override
|
| + Map<String, Object> toJson() {
|
| + Map<String, Object> _result = <String, Object>{};
|
| + if (apiSignature != '') _result["apiSignature"] = apiSignature;
|
| + if (includedPackageNames.isNotEmpty) _result["includedPackageNames"] = includedPackageNames;
|
| + if (includesDartUris != false) _result["includesDartUris"] = includesDartUris;
|
| + if (includesFileUris != false) _result["includesFileUris"] = includesFileUris;
|
| + if (summaryPath != '') _result["summaryPath"] = summaryPath;
|
| + return _result;
|
| + }
|
| +
|
| + @override
|
| + Map<String, Object> toMap() => {
|
| + "apiSignature": apiSignature,
|
| + "includedPackageNames": includedPackageNames,
|
| + "includesDartUris": includesDartUris,
|
| + "includesFileUris": includesFileUris,
|
| + "summaryPath": summaryPath,
|
| + };
|
| +
|
| + @override
|
| + String toString() => convert.JSON.encode(toJson());
|
| +}
|
| +
|
| class PackageIndexBuilder extends Object with _PackageIndexMixin implements idl.PackageIndex {
|
| List<idl.IndexSyntheticElementKind> _elementKinds;
|
| List<int> _elementNameClassMemberIds;
|
|
|