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 bec76af9e62414684fc27b1a369cbb07d566a120..501ec8de8180db9cc61a6ba071444bec558a99e9 100644 |
--- a/pkg/analyzer/lib/src/summary/format.dart |
+++ b/pkg/analyzer/lib/src/summary/format.dart |
@@ -4274,6 +4274,147 @@ abstract class _UnlinkedCombinatorMixin implements idl.UnlinkedCombinator { |
String toString() => convert.JSON.encode(toJson()); |
} |
+class UnlinkedConfigurationBuilder extends Object with _UnlinkedConfigurationMixin implements idl.UnlinkedConfiguration { |
+ String _name; |
+ String _uri; |
+ String _value; |
+ |
+ @override |
+ String get name => _name ??= ''; |
+ |
+ /** |
+ * The name of the declared variable whose value is being used in the |
+ * condition. |
+ */ |
+ void set name(String value) { |
+ this._name = value; |
+ } |
+ |
+ @override |
+ String get uri => _uri ??= ''; |
+ |
+ /** |
+ * The URI of the implementation library to be used if the condition is true. |
+ */ |
+ void set uri(String value) { |
+ this._uri = value; |
+ } |
+ |
+ @override |
+ String get value => _value ??= ''; |
+ |
+ /** |
+ * The value to which the value of the declared variable will be compared, |
+ * or `true` if the condition does not include an equality test. |
+ */ |
+ void set value(String value) { |
+ this._value = value; |
+ } |
+ |
+ UnlinkedConfigurationBuilder({String name, String uri, String value}) |
+ : _name = name, |
+ _uri = uri, |
+ _value = value; |
+ |
+ /** |
+ * Flush [informative] data recursively. |
+ */ |
+ void flushInformative() { |
+ } |
+ |
+ /** |
+ * Accumulate non-[informative] data into [signature]. |
+ */ |
+ void collectApiSignature(api_sig.ApiSignature signature) { |
+ signature.addString(this._name ?? ''); |
+ signature.addString(this._value ?? ''); |
+ signature.addString(this._uri ?? ''); |
+ } |
+ |
+ fb.Offset finish(fb.Builder fbBuilder) { |
+ fb.Offset offset_name; |
+ fb.Offset offset_uri; |
+ fb.Offset offset_value; |
+ if (_name != null) { |
+ offset_name = fbBuilder.writeString(_name); |
+ } |
+ if (_uri != null) { |
+ offset_uri = fbBuilder.writeString(_uri); |
+ } |
+ if (_value != null) { |
+ offset_value = fbBuilder.writeString(_value); |
+ } |
+ fbBuilder.startTable(); |
+ if (offset_name != null) { |
+ fbBuilder.addOffset(0, offset_name); |
+ } |
+ if (offset_uri != null) { |
+ fbBuilder.addOffset(2, offset_uri); |
+ } |
+ if (offset_value != null) { |
+ fbBuilder.addOffset(1, offset_value); |
+ } |
+ return fbBuilder.endTable(); |
+ } |
+} |
+ |
+class _UnlinkedConfigurationReader extends fb.TableReader<_UnlinkedConfigurationImpl> { |
+ const _UnlinkedConfigurationReader(); |
+ |
+ @override |
+ _UnlinkedConfigurationImpl createObject(fb.BufferContext bc, int offset) => new _UnlinkedConfigurationImpl(bc, offset); |
+} |
+ |
+class _UnlinkedConfigurationImpl extends Object with _UnlinkedConfigurationMixin implements idl.UnlinkedConfiguration { |
+ final fb.BufferContext _bc; |
+ final int _bcOffset; |
+ |
+ _UnlinkedConfigurationImpl(this._bc, this._bcOffset); |
+ |
+ String _name; |
+ String _uri; |
+ String _value; |
+ |
+ @override |
+ String get name { |
+ _name ??= const fb.StringReader().vTableGet(_bc, _bcOffset, 0, ''); |
+ return _name; |
+ } |
+ |
+ @override |
+ String get uri { |
+ _uri ??= const fb.StringReader().vTableGet(_bc, _bcOffset, 2, ''); |
+ return _uri; |
+ } |
+ |
+ @override |
+ String get value { |
+ _value ??= const fb.StringReader().vTableGet(_bc, _bcOffset, 1, ''); |
+ return _value; |
+ } |
+} |
+ |
+abstract class _UnlinkedConfigurationMixin implements idl.UnlinkedConfiguration { |
+ @override |
+ Map<String, Object> toJson() { |
+ Map<String, Object> _result = <String, Object>{}; |
+ if (name != '') _result["name"] = name; |
+ if (uri != '') _result["uri"] = uri; |
+ if (value != '') _result["value"] = value; |
+ return _result; |
+ } |
+ |
+ @override |
+ Map<String, Object> toMap() => { |
+ "name": name, |
+ "uri": uri, |
+ "value": value, |
+ }; |
+ |
+ @override |
+ String toString() => convert.JSON.encode(toJson()); |
+} |
+ |
class UnlinkedConstBuilder extends Object with _UnlinkedConstMixin implements idl.UnlinkedConst { |
List<idl.UnlinkedExprAssignOperator> _assignmentOperators; |
List<double> _doubles; |
@@ -6384,19 +6525,31 @@ abstract class _UnlinkedExportNonPublicMixin implements idl.UnlinkedExportNonPub |
class UnlinkedExportPublicBuilder extends Object with _UnlinkedExportPublicMixin implements idl.UnlinkedExportPublic { |
List<UnlinkedCombinatorBuilder> _combinators; |
+ List<UnlinkedConfigurationBuilder> _configurations; |
String _uri; |
@override |
List<UnlinkedCombinatorBuilder> get combinators => _combinators ??= <UnlinkedCombinatorBuilder>[]; |
/** |
- * Combinators contained in this import declaration. |
+ * Combinators contained in this export declaration. |
*/ |
void set combinators(List<UnlinkedCombinatorBuilder> value) { |
this._combinators = value; |
} |
@override |
+ List<UnlinkedConfigurationBuilder> get configurations => _configurations ??= <UnlinkedConfigurationBuilder>[]; |
+ |
+ /** |
+ * Configurations used to control which library will actually be loaded at |
+ * run-time. |
+ */ |
+ void set configurations(List<UnlinkedConfigurationBuilder> value) { |
+ this._configurations = value; |
+ } |
+ |
+ @override |
String get uri => _uri ??= ''; |
/** |
@@ -6406,8 +6559,9 @@ class UnlinkedExportPublicBuilder extends Object with _UnlinkedExportPublicMixin |
this._uri = value; |
} |
- UnlinkedExportPublicBuilder({List<UnlinkedCombinatorBuilder> combinators, String uri}) |
+ UnlinkedExportPublicBuilder({List<UnlinkedCombinatorBuilder> combinators, List<UnlinkedConfigurationBuilder> configurations, String uri}) |
: _combinators = combinators, |
+ _configurations = configurations, |
_uri = uri; |
/** |
@@ -6415,6 +6569,7 @@ class UnlinkedExportPublicBuilder extends Object with _UnlinkedExportPublicMixin |
*/ |
void flushInformative() { |
_combinators?.forEach((b) => b.flushInformative()); |
+ _configurations?.forEach((b) => b.flushInformative()); |
} |
/** |
@@ -6430,14 +6585,26 @@ class UnlinkedExportPublicBuilder extends Object with _UnlinkedExportPublicMixin |
x?.collectApiSignature(signature); |
} |
} |
+ if (this._configurations == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._configurations.length); |
+ for (var x in this._configurations) { |
+ x?.collectApiSignature(signature); |
+ } |
+ } |
} |
fb.Offset finish(fb.Builder fbBuilder) { |
fb.Offset offset_combinators; |
+ fb.Offset offset_configurations; |
fb.Offset offset_uri; |
if (!(_combinators == null || _combinators.isEmpty)) { |
offset_combinators = fbBuilder.writeList(_combinators.map((b) => b.finish(fbBuilder)).toList()); |
} |
+ if (!(_configurations == null || _configurations.isEmpty)) { |
+ offset_configurations = fbBuilder.writeList(_configurations.map((b) => b.finish(fbBuilder)).toList()); |
+ } |
if (_uri != null) { |
offset_uri = fbBuilder.writeString(_uri); |
} |
@@ -6445,6 +6612,9 @@ class UnlinkedExportPublicBuilder extends Object with _UnlinkedExportPublicMixin |
if (offset_combinators != null) { |
fbBuilder.addOffset(1, offset_combinators); |
} |
+ if (offset_configurations != null) { |
+ fbBuilder.addOffset(2, offset_configurations); |
+ } |
if (offset_uri != null) { |
fbBuilder.addOffset(0, offset_uri); |
} |
@@ -6466,6 +6636,7 @@ class _UnlinkedExportPublicImpl extends Object with _UnlinkedExportPublicMixin i |
_UnlinkedExportPublicImpl(this._bc, this._bcOffset); |
List<idl.UnlinkedCombinator> _combinators; |
+ List<idl.UnlinkedConfiguration> _configurations; |
String _uri; |
@override |
@@ -6475,6 +6646,12 @@ class _UnlinkedExportPublicImpl extends Object with _UnlinkedExportPublicMixin i |
} |
@override |
+ List<idl.UnlinkedConfiguration> get configurations { |
+ _configurations ??= const fb.ListReader<idl.UnlinkedConfiguration>(const _UnlinkedConfigurationReader()).vTableGet(_bc, _bcOffset, 2, const <idl.UnlinkedConfiguration>[]); |
+ return _configurations; |
+ } |
+ |
+ @override |
String get uri { |
_uri ??= const fb.StringReader().vTableGet(_bc, _bcOffset, 0, ''); |
return _uri; |
@@ -6486,6 +6663,7 @@ abstract class _UnlinkedExportPublicMixin implements idl.UnlinkedExportPublic { |
Map<String, Object> toJson() { |
Map<String, Object> _result = <String, Object>{}; |
if (combinators.isNotEmpty) _result["combinators"] = combinators.map((_value) => _value.toJson()).toList(); |
+ if (configurations.isNotEmpty) _result["configurations"] = configurations.map((_value) => _value.toJson()).toList(); |
if (uri != '') _result["uri"] = uri; |
return _result; |
} |
@@ -6493,6 +6671,7 @@ abstract class _UnlinkedExportPublicMixin implements idl.UnlinkedExportPublic { |
@override |
Map<String, Object> toMap() => { |
"combinators": combinators, |
+ "configurations": configurations, |
"uri": uri, |
}; |
@@ -6503,6 +6682,7 @@ abstract class _UnlinkedExportPublicMixin implements idl.UnlinkedExportPublic { |
class UnlinkedImportBuilder extends Object with _UnlinkedImportMixin implements idl.UnlinkedImport { |
List<UnlinkedConstBuilder> _annotations; |
List<UnlinkedCombinatorBuilder> _combinators; |
+ List<UnlinkedConfigurationBuilder> _configurations; |
bool _isDeferred; |
bool _isImplicit; |
int _offset; |
@@ -6533,6 +6713,17 @@ class UnlinkedImportBuilder extends Object with _UnlinkedImportMixin implements |
} |
@override |
+ List<UnlinkedConfigurationBuilder> get configurations => _configurations ??= <UnlinkedConfigurationBuilder>[]; |
+ |
+ /** |
+ * Configurations used to control which library will actually be loaded at |
+ * run-time. |
+ */ |
+ void set configurations(List<UnlinkedConfigurationBuilder> value) { |
+ this._configurations = value; |
+ } |
+ |
+ @override |
bool get isDeferred => _isDeferred ??= false; |
/** |
@@ -6624,9 +6815,10 @@ class UnlinkedImportBuilder extends Object with _UnlinkedImportMixin implements |
this._uriOffset = value; |
} |
- UnlinkedImportBuilder({List<UnlinkedConstBuilder> annotations, List<UnlinkedCombinatorBuilder> combinators, bool isDeferred, bool isImplicit, int offset, int prefixOffset, int prefixReference, String uri, int uriEnd, int uriOffset}) |
+ UnlinkedImportBuilder({List<UnlinkedConstBuilder> annotations, List<UnlinkedCombinatorBuilder> combinators, List<UnlinkedConfigurationBuilder> configurations, bool isDeferred, bool isImplicit, int offset, int prefixOffset, int prefixReference, String uri, int uriEnd, int uriOffset}) |
: _annotations = annotations, |
_combinators = combinators, |
+ _configurations = configurations, |
_isDeferred = isDeferred, |
_isImplicit = isImplicit, |
_offset = offset, |
@@ -6642,6 +6834,7 @@ class UnlinkedImportBuilder extends Object with _UnlinkedImportMixin implements |
void flushInformative() { |
_annotations?.forEach((b) => b.flushInformative()); |
_combinators?.forEach((b) => b.flushInformative()); |
+ _configurations?.forEach((b) => b.flushInformative()); |
_offset = null; |
_prefixOffset = null; |
_uriEnd = null; |
@@ -6672,11 +6865,20 @@ class UnlinkedImportBuilder extends Object with _UnlinkedImportMixin implements |
} |
} |
signature.addBool(this._isDeferred == true); |
+ if (this._configurations == null) { |
+ signature.addInt(0); |
+ } else { |
+ signature.addInt(this._configurations.length); |
+ for (var x in this._configurations) { |
+ x?.collectApiSignature(signature); |
+ } |
+ } |
} |
fb.Offset finish(fb.Builder fbBuilder) { |
fb.Offset offset_annotations; |
fb.Offset offset_combinators; |
+ fb.Offset offset_configurations; |
fb.Offset offset_uri; |
if (!(_annotations == null || _annotations.isEmpty)) { |
offset_annotations = fbBuilder.writeList(_annotations.map((b) => b.finish(fbBuilder)).toList()); |
@@ -6684,6 +6886,9 @@ class UnlinkedImportBuilder extends Object with _UnlinkedImportMixin implements |
if (!(_combinators == null || _combinators.isEmpty)) { |
offset_combinators = fbBuilder.writeList(_combinators.map((b) => b.finish(fbBuilder)).toList()); |
} |
+ if (!(_configurations == null || _configurations.isEmpty)) { |
+ offset_configurations = fbBuilder.writeList(_configurations.map((b) => b.finish(fbBuilder)).toList()); |
+ } |
if (_uri != null) { |
offset_uri = fbBuilder.writeString(_uri); |
} |
@@ -6694,6 +6899,9 @@ class UnlinkedImportBuilder extends Object with _UnlinkedImportMixin implements |
if (offset_combinators != null) { |
fbBuilder.addOffset(4, offset_combinators); |
} |
+ if (offset_configurations != null) { |
+ fbBuilder.addOffset(10, offset_configurations); |
+ } |
if (_isDeferred == true) { |
fbBuilder.addBool(9, true); |
} |
@@ -6737,6 +6945,7 @@ class _UnlinkedImportImpl extends Object with _UnlinkedImportMixin implements id |
List<idl.UnlinkedConst> _annotations; |
List<idl.UnlinkedCombinator> _combinators; |
+ List<idl.UnlinkedConfiguration> _configurations; |
bool _isDeferred; |
bool _isImplicit; |
int _offset; |
@@ -6759,6 +6968,12 @@ class _UnlinkedImportImpl extends Object with _UnlinkedImportMixin implements id |
} |
@override |
+ List<idl.UnlinkedConfiguration> get configurations { |
+ _configurations ??= const fb.ListReader<idl.UnlinkedConfiguration>(const _UnlinkedConfigurationReader()).vTableGet(_bc, _bcOffset, 10, const <idl.UnlinkedConfiguration>[]); |
+ return _configurations; |
+ } |
+ |
+ @override |
bool get isDeferred { |
_isDeferred ??= const fb.BoolReader().vTableGet(_bc, _bcOffset, 9, false); |
return _isDeferred; |
@@ -6813,6 +7028,7 @@ abstract class _UnlinkedImportMixin implements idl.UnlinkedImport { |
Map<String, Object> _result = <String, Object>{}; |
if (annotations.isNotEmpty) _result["annotations"] = annotations.map((_value) => _value.toJson()).toList(); |
if (combinators.isNotEmpty) _result["combinators"] = combinators.map((_value) => _value.toJson()).toList(); |
+ if (configurations.isNotEmpty) _result["configurations"] = configurations.map((_value) => _value.toJson()).toList(); |
if (isDeferred != false) _result["isDeferred"] = isDeferred; |
if (isImplicit != false) _result["isImplicit"] = isImplicit; |
if (offset != 0) _result["offset"] = offset; |
@@ -6828,6 +7044,7 @@ abstract class _UnlinkedImportMixin implements idl.UnlinkedImport { |
Map<String, Object> toMap() => { |
"annotations": annotations, |
"combinators": combinators, |
+ "configurations": configurations, |
"isDeferred": isDeferred, |
"isImplicit": isImplicit, |
"offset": offset, |