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 bc4d0ab38c3bc4abee0b703db196ea767a1f73da..be1de5469aec441fe7a762e6561fa2617fc1a872 100644 |
--- a/pkg/analyzer/lib/src/summary/format.dart |
+++ b/pkg/analyzer/lib/src/summary/format.dart |
@@ -8406,6 +8406,7 @@ class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl. |
String _libraryName; |
int _libraryNameLength; |
int _libraryNameOffset; |
+ List<int> _lineStarts; |
List<UnlinkedPartBuilder> _parts; |
UnlinkedPublicNamespaceBuilder _publicNamespace; |
List<UnlinkedReferenceBuilder> _references; |
@@ -8544,6 +8545,17 @@ class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl. |
} |
@override |
+ List<int> get lineStarts => _lineStarts ??= <int>[]; |
+ |
+ /** |
+ * Offsets of the first character of each line in the source code. |
+ */ |
+ void set lineStarts(List<int> _value) { |
+ assert(_value == null || _value.every((e) => e >= 0)); |
+ _lineStarts = _value; |
+ } |
+ |
+ @override |
List<UnlinkedPartBuilder> get parts => _parts ??= <UnlinkedPartBuilder>[]; |
/** |
@@ -8597,7 +8609,7 @@ 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, String fallbackModePath, 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}) |
+ UnlinkedUnitBuilder({List<UnlinkedClassBuilder> classes, CodeRangeBuilder codeRange, List<UnlinkedEnumBuilder> enums, List<UnlinkedExecutableBuilder> executables, List<UnlinkedExportNonPublicBuilder> exports, String fallbackModePath, List<UnlinkedImportBuilder> imports, List<UnlinkedConstBuilder> libraryAnnotations, UnlinkedDocumentationCommentBuilder libraryDocumentationComment, String libraryName, int libraryNameLength, int libraryNameOffset, List<int> lineStarts, List<UnlinkedPartBuilder> parts, UnlinkedPublicNamespaceBuilder publicNamespace, List<UnlinkedReferenceBuilder> references, List<UnlinkedTypedefBuilder> typedefs, List<UnlinkedVariableBuilder> variables}) |
: _classes = classes, |
_codeRange = codeRange, |
_enums = enums, |
@@ -8610,6 +8622,7 @@ class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl. |
_libraryName = libraryName, |
_libraryNameLength = libraryNameLength, |
_libraryNameOffset = libraryNameOffset, |
+ _lineStarts = lineStarts, |
_parts = parts, |
_publicNamespace = publicNamespace, |
_references = references, |
@@ -8630,6 +8643,7 @@ class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl. |
_libraryDocumentationComment = null; |
_libraryNameLength = null; |
_libraryNameOffset = null; |
+ _lineStarts = null; |
_parts?.forEach((b) => b.flushInformative()); |
_publicNamespace?.flushInformative(); |
_references?.forEach((b) => b.flushInformative()); |
@@ -8743,6 +8757,7 @@ class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl. |
fb.Offset offset_libraryAnnotations; |
fb.Offset offset_libraryDocumentationComment; |
fb.Offset offset_libraryName; |
+ fb.Offset offset_lineStarts; |
fb.Offset offset_parts; |
fb.Offset offset_publicNamespace; |
fb.Offset offset_references; |
@@ -8778,6 +8793,9 @@ class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl. |
if (_libraryName != null) { |
offset_libraryName = fbBuilder.writeString(_libraryName); |
} |
+ if (!(_lineStarts == null || _lineStarts.isEmpty)) { |
+ offset_lineStarts = fbBuilder.writeListUint32(_lineStarts); |
+ } |
if (!(_parts == null || _parts.isEmpty)) { |
offset_parts = fbBuilder.writeList(_parts.map((b) => b.finish(fbBuilder)).toList()); |
} |
@@ -8830,6 +8848,9 @@ class UnlinkedUnitBuilder extends Object with _UnlinkedUnitMixin implements idl. |
if (_libraryNameOffset != null && _libraryNameOffset != 0) { |
fbBuilder.addUint32(8, _libraryNameOffset); |
} |
+ if (offset_lineStarts != null) { |
+ fbBuilder.addOffset(17, offset_lineStarts); |
+ } |
if (offset_parts != null) { |
fbBuilder.addOffset(11, offset_parts); |
} |
@@ -8879,6 +8900,7 @@ class _UnlinkedUnitImpl extends Object with _UnlinkedUnitMixin implements idl.Un |
String _libraryName; |
int _libraryNameLength; |
int _libraryNameOffset; |
+ List<int> _lineStarts; |
List<idl.UnlinkedPart> _parts; |
idl.UnlinkedPublicNamespace _publicNamespace; |
List<idl.UnlinkedReference> _references; |
@@ -8958,6 +8980,12 @@ class _UnlinkedUnitImpl extends Object with _UnlinkedUnitMixin implements idl.Un |
} |
@override |
+ List<int> get lineStarts { |
+ _lineStarts ??= const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 17, const <int>[]); |
+ return _lineStarts; |
+ } |
+ |
+ @override |
List<idl.UnlinkedPart> get parts { |
_parts ??= const fb.ListReader<idl.UnlinkedPart>(const _UnlinkedPartReader()).vTableGet(_bc, _bcOffset, 11, const <idl.UnlinkedPart>[]); |
return _parts; |
@@ -9004,6 +9032,7 @@ abstract class _UnlinkedUnitMixin implements idl.UnlinkedUnit { |
if (libraryName != '') _result["libraryName"] = libraryName; |
if (libraryNameLength != 0) _result["libraryNameLength"] = libraryNameLength; |
if (libraryNameOffset != 0) _result["libraryNameOffset"] = libraryNameOffset; |
+ if (lineStarts.isNotEmpty) _result["lineStarts"] = lineStarts; |
if (parts.isNotEmpty) _result["parts"] = parts.map((_value) => _value.toJson()).toList(); |
if (publicNamespace != null) _result["publicNamespace"] = publicNamespace.toJson(); |
if (references.isNotEmpty) _result["references"] = references.map((_value) => _value.toJson()).toList(); |
@@ -9026,6 +9055,7 @@ abstract class _UnlinkedUnitMixin implements idl.UnlinkedUnit { |
"libraryName": libraryName, |
"libraryNameLength": libraryNameLength, |
"libraryNameOffset": libraryNameOffset, |
+ "lineStarts": lineStarts, |
"parts": parts, |
"publicNamespace": publicNamespace, |
"references": references, |