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 8c68190bb7a20abbdb87e981260a987ee6b873c4..d4653dd61abe0a8e5ce231c2934c744bb764f107 100644 |
--- a/pkg/analyzer/lib/src/summary/format.dart |
+++ b/pkg/analyzer/lib/src/summary/format.dart |
@@ -975,6 +975,7 @@ class LinkedLibraryBuilder extends Object with _LinkedLibraryMixin implements id |
List<LinkedDependencyBuilder> _dependencies; |
List<LinkedExportNameBuilder> _exportNames; |
+ bool _fallbackMode; |
List<int> _importDependencies; |
int _numPrelinkedDependencies; |
List<LinkedUnitBuilder> _units; |
@@ -1019,6 +1020,18 @@ class LinkedLibraryBuilder extends Object with _LinkedLibraryMixin implements id |
} |
@override |
+ bool get fallbackMode => _fallbackMode ??= false; |
+ |
+ /** |
+ * Indicates whether this library was summarized in "fallback mode". If |
+ * true, all other fields in the data structure have their default values. |
+ */ |
+ void set fallbackMode(bool _value) { |
+ assert(!_finished); |
+ _fallbackMode = _value; |
+ } |
+ |
+ @override |
List<int> get importDependencies => _importDependencies ??= <int>[]; |
/** |
@@ -1059,9 +1072,10 @@ class LinkedLibraryBuilder extends Object with _LinkedLibraryMixin implements id |
_units = _value; |
} |
- LinkedLibraryBuilder({List<LinkedDependencyBuilder> dependencies, List<LinkedExportNameBuilder> exportNames, List<int> importDependencies, int numPrelinkedDependencies, List<LinkedUnitBuilder> units}) |
+ LinkedLibraryBuilder({List<LinkedDependencyBuilder> dependencies, List<LinkedExportNameBuilder> exportNames, bool fallbackMode, List<int> importDependencies, int numPrelinkedDependencies, List<LinkedUnitBuilder> units}) |
: _dependencies = dependencies, |
_exportNames = exportNames, |
+ _fallbackMode = fallbackMode, |
_importDependencies = importDependencies, |
_numPrelinkedDependencies = numPrelinkedDependencies, |
_units = units; |
@@ -1106,6 +1120,9 @@ class LinkedLibraryBuilder extends Object with _LinkedLibraryMixin implements id |
if (offset_exportNames != null) { |
fbBuilder.addOffset(4, offset_exportNames); |
} |
+ if (_fallbackMode == true) { |
+ fbBuilder.addBool(5, true); |
+ } |
if (offset_importDependencies != null) { |
fbBuilder.addOffset(1, offset_importDependencies); |
} |
@@ -1138,6 +1155,7 @@ class _LinkedLibraryImpl extends Object with _LinkedLibraryMixin implements idl. |
List<idl.LinkedDependency> _dependencies; |
List<idl.LinkedExportName> _exportNames; |
+ bool _fallbackMode; |
List<int> _importDependencies; |
int _numPrelinkedDependencies; |
List<idl.LinkedUnit> _units; |
@@ -1155,6 +1173,12 @@ class _LinkedLibraryImpl extends Object with _LinkedLibraryMixin implements idl. |
} |
@override |
+ bool get fallbackMode { |
+ _fallbackMode ??= const fb.BoolReader().vTableGet(_bp, 5, false); |
+ return _fallbackMode; |
+ } |
+ |
+ @override |
List<int> get importDependencies { |
_importDependencies ??= const fb.Uint32ListReader().vTableGet(_bp, 1, const <int>[]); |
return _importDependencies; |
@@ -1179,6 +1203,7 @@ abstract class _LinkedLibraryMixin implements idl.LinkedLibrary { |
Map<String, Object> _result = <String, Object>{}; |
if (dependencies.isNotEmpty) _result["dependencies"] = dependencies.map((_value) => _value.toJson()).toList(); |
if (exportNames.isNotEmpty) _result["exportNames"] = exportNames.map((_value) => _value.toJson()).toList(); |
+ if (fallbackMode != false) _result["fallbackMode"] = fallbackMode; |
if (importDependencies.isNotEmpty) _result["importDependencies"] = importDependencies; |
if (numPrelinkedDependencies != 0) _result["numPrelinkedDependencies"] = numPrelinkedDependencies; |
if (units.isNotEmpty) _result["units"] = units.map((_value) => _value.toJson()).toList(); |
@@ -1189,6 +1214,7 @@ abstract class _LinkedLibraryMixin implements idl.LinkedLibrary { |
Map<String, Object> toMap() => { |
"dependencies": dependencies, |
"exportNames": exportNames, |
+ "fallbackMode": fallbackMode, |
"importDependencies": importDependencies, |
"numPrelinkedDependencies": numPrelinkedDependencies, |
"units": units, |
@@ -7213,6 +7239,7 @@ abstract class _UnlinkedTypeParamMixin implements idl.UnlinkedTypeParam { |
class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl.UnlinkedUnit { |
bool _finished = false; |
+ String _fallbackModePath; |
List<UnlinkedClassBuilder> _classes; |
CodeRangeBuilder _codeRange; |
List<UnlinkedEnumBuilder> _enums; |
@@ -7231,6 +7258,21 @@ class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl. |
List<UnlinkedVariableBuilder> _variables; |
@override |
+ String get fallbackModePath => _fallbackModePath ??= ''; |
+ |
+ /** |
+ * If this compilation unit was summarized in fallback mode, the path where |
+ * the compilation unit may be found on disk. Otherwise empty. |
+ * |
+ * When this field is non-empty, all other fields in the data structure have |
+ * their default values. |
+ */ |
+ void set fallbackModePath(String _value) { |
+ assert(!_finished); |
+ _fallbackModePath = _value; |
+ } |
+ |
+ @override |
List<UnlinkedClassBuilder> get classes => _classes ??= <UnlinkedClassBuilder>[]; |
/** |
@@ -7417,8 +7459,9 @@ class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl. |
_variables = _value; |
} |
- UnlinkedUnitBuilder({List<UnlinkedClassBuilder> classes, CodeRangeBuilder codeRange, List<UnlinkedEnumBuilder> enums, List<UnlinkedExecutableBuilder> executables, List<UnlinkedExportNonPublicBuilder> exports, List<UnlinkedImportBuilder> imports, List<UnlinkedConstBuilder> libraryAnnotations, UnlinkedDocumentationCommentBuilder libraryDocumentationComment, String libraryName, int libraryNameLength, int libraryNameOffset, List<UnlinkedPartBuilder> parts, UnlinkedPublicNamespaceBuilder publicNamespace, List<UnlinkedReferenceBuilder> references, List<UnlinkedTypedefBuilder> typedefs, List<UnlinkedVariableBuilder> variables}) |
- : _classes = classes, |
+ UnlinkedUnitBuilder({String fallbackModePath, List<UnlinkedClassBuilder> classes, CodeRangeBuilder codeRange, List<UnlinkedEnumBuilder> enums, List<UnlinkedExecutableBuilder> executables, List<UnlinkedExportNonPublicBuilder> exports, List<UnlinkedImportBuilder> imports, List<UnlinkedConstBuilder> libraryAnnotations, UnlinkedDocumentationCommentBuilder libraryDocumentationComment, String libraryName, int libraryNameLength, int libraryNameOffset, List<UnlinkedPartBuilder> parts, UnlinkedPublicNamespaceBuilder publicNamespace, List<UnlinkedReferenceBuilder> references, List<UnlinkedTypedefBuilder> typedefs, List<UnlinkedVariableBuilder> variables}) |
+ : _fallbackModePath = fallbackModePath, |
+ _classes = classes, |
_codeRange = codeRange, |
_enums = enums, |
_executables = executables, |
@@ -7464,6 +7507,7 @@ class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl. |
fb.Offset finish(fb.Builder fbBuilder) { |
assert(!_finished); |
_finished = true; |
+ fb.Offset offset_fallbackModePath; |
fb.Offset offset_classes; |
fb.Offset offset_codeRange; |
fb.Offset offset_enums; |
@@ -7478,6 +7522,9 @@ class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl. |
fb.Offset offset_references; |
fb.Offset offset_typedefs; |
fb.Offset offset_variables; |
+ if (_fallbackModePath != null) { |
+ offset_fallbackModePath = fbBuilder.writeString(_fallbackModePath); |
+ } |
if (!(_classes == null || _classes.isEmpty)) { |
offset_classes = fbBuilder.writeList(_classes.map((b) => b.finish(fbBuilder)).toList()); |
} |
@@ -7521,6 +7568,9 @@ class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl. |
offset_variables = fbBuilder.writeList(_variables.map((b) => b.finish(fbBuilder)).toList()); |
} |
fbBuilder.startTable(); |
+ if (offset_fallbackModePath != null) { |
+ fbBuilder.addOffset(16, offset_fallbackModePath); |
+ } |
if (offset_classes != null) { |
fbBuilder.addOffset(2, offset_classes); |
} |
@@ -7590,6 +7640,7 @@ class _UnlinkedUnitImpl extends Object with _UnlinkedUnitMixin implements idl.Un |
_UnlinkedUnitImpl(this._bp); |
+ String _fallbackModePath; |
List<idl.UnlinkedClass> _classes; |
idl.CodeRange _codeRange; |
List<idl.UnlinkedEnum> _enums; |
@@ -7608,6 +7659,12 @@ class _UnlinkedUnitImpl extends Object with _UnlinkedUnitMixin implements idl.Un |
List<idl.UnlinkedVariable> _variables; |
@override |
+ String get fallbackModePath { |
+ _fallbackModePath ??= const fb.StringReader().vTableGet(_bp, 16, ''); |
+ return _fallbackModePath; |
+ } |
+ |
+ @override |
List<idl.UnlinkedClass> get classes { |
_classes ??= const fb.ListReader<idl.UnlinkedClass>(const _UnlinkedClassReader()).vTableGet(_bp, 2, const <idl.UnlinkedClass>[]); |
return _classes; |
@@ -7708,6 +7765,7 @@ abstract class _UnlinkedUnitMixin implements idl.UnlinkedUnit { |
@override |
Map<String, Object> toJson() { |
Map<String, Object> _result = <String, Object>{}; |
+ if (fallbackModePath != '') _result["fallbackModePath"] = fallbackModePath; |
if (classes.isNotEmpty) _result["classes"] = classes.map((_value) => _value.toJson()).toList(); |
if (codeRange != null) _result["codeRange"] = codeRange.toJson(); |
if (enums.isNotEmpty) _result["enums"] = enums.map((_value) => _value.toJson()).toList(); |
@@ -7729,6 +7787,7 @@ abstract class _UnlinkedUnitMixin implements idl.UnlinkedUnit { |
@override |
Map<String, Object> toMap() => { |
+ "fallbackModePath": fallbackModePath, |
"classes": classes, |
"codeRange": codeRange, |
"enums": enums, |