Skip to content

Commit 86df26d

Browse files
fshcheglovCommit Queue
authored andcommitted
Consolidate fragment writing into _writeTemplateFragment.
Migrate hand-rolled _writeXxxFragment helpers to the shared _writeTemplateFragment. This eliminates duplicated serialization logic (ID / name / offset / modifiers), shrinks the code base, and makes it easier to add new fragment types without boiler-plate. Removed flags from `bundle_reader` and `bundle_writer`, will remove flag classes in the future as they will be replaced with reading/writing modifiers. Change-Id: I79aabd1e94bfa831d6718bb2889a6a00e6561112 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/437102 Reviewed-by: Konstantin Shcheglov <[email protected]> Commit-Queue: Paul Berry <[email protected]> Reviewed-by: Paul Berry <[email protected]>
1 parent 2efecc9 commit 86df26d

File tree

3 files changed

+133
-147
lines changed

3 files changed

+133
-147
lines changed

pkg/analyzer/lib/src/dart/analysis/driver.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ testFineAfterLibraryAnalyzerHook;
110110
// TODO(scheglov): Clean up the list of implicitly analyzed files.
111111
class AnalysisDriver {
112112
/// The version of data format, should be incremented on every format change.
113-
static const int DATA_VERSION = 481;
113+
static const int DATA_VERSION = 482;
114114

115115
/// The number of exception contexts allowed to write. Once this field is
116116
/// zero, we stop writing any new exception contexts in this process.

pkg/analyzer/lib/src/summary2/bundle_reader.dart

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ class LibraryReader {
311311
return _readTemplateFragment(
312312
create: (name) {
313313
var fragment = ClassFragmentImpl(name2: name, nameOffset: -1);
314-
ClassElementFlags.read(_reader, fragment);
314+
fragment.readModifiers(_reader);
315315
fragment.typeParameters = _readTypeParameters();
316316

317317
_lazyRead((membersOffset) {
@@ -518,7 +518,7 @@ class LibraryReader {
518518
return _readTemplateFragment(
519519
create: (name) {
520520
var fragment = EnumFragmentImpl(name2: name, nameOffset: -1);
521-
EnumElementFlags.read(_reader, fragment);
521+
fragment.readModifiers(_reader);
522522
fragment.typeParameters = _readTypeParameters();
523523

524524
// TODO(scheglov): consider reading lazily
@@ -604,7 +604,7 @@ class LibraryReader {
604604
return _readTemplateFragment(
605605
create: (name) {
606606
var fragment = ExtensionFragmentImpl(name2: name, nameOffset: -1);
607-
ExtensionElementFlags.read(_reader, fragment);
607+
fragment.readModifiers(_reader);
608608
fragment.typeParameters = _readTypeParameters();
609609
_readFieldFragments(fragment);
610610
fragment.getters = _readGetterFragments();
@@ -658,7 +658,9 @@ class LibraryReader {
658658
return _readTemplateFragment(
659659
create: (name) {
660660
var fragment = ExtensionTypeFragmentImpl(name2: name, nameOffset: -1);
661-
ExtensionTypeElementFlags.read(_reader, fragment);
661+
fragment.readModifiers(_reader);
662+
fragment.hasRepresentationSelfReference = _reader.readBool();
663+
fragment.hasImplementsSelfReference = _reader.readBool();
662664
fragment.typeParameters = _readTypeParameters();
663665

664666
// TODO(scheglov): consider reading lazily
@@ -997,7 +999,7 @@ class LibraryReader {
997999
return _readTemplateFragment(
9981000
create: (name) {
9991001
var fragment = MixinFragmentImpl(name2: name, nameOffset: -1);
1000-
MixinElementFlags.read(_reader, fragment);
1002+
fragment.readModifiers(_reader);
10011003
fragment.superInvokedNames = _reader.readStringReferenceList();
10021004
fragment.typeParameters = _readTypeParameters();
10031005

0 commit comments

Comments
 (0)