Skip to content

Commit 200f10e

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Move isExtensionTypeMember flag from fragments to elements.
Change-Id: I5d7d209725b3c75478b6fee741290bd531c1a9ea Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/441823 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 202a158 commit 200f10e

File tree

6 files changed

+23
-27
lines changed

6 files changed

+23
-27
lines changed

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

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

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

pkg/analyzer/lib/src/dart/element/element.dart

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2250,7 +2250,11 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
22502250

22512251
@override
22522252
bool get isExtensionTypeMember {
2253-
return firstFragment.isExtensionTypeMember;
2253+
return hasModifier(Modifier.EXTENSION_TYPE_MEMBER);
2254+
}
2255+
2256+
set isExtensionTypeMember(bool value) {
2257+
setModifier(Modifier.EXTENSION_TYPE_MEMBER, value);
22542258
}
22552259

22562260
@override
@@ -2438,15 +2442,6 @@ abstract class ExecutableFragmentImpl extends FragmentImpl
24382442
setModifier(Modifier.ASYNCHRONOUS, isAsynchronous);
24392443
}
24402444

2441-
/// Whether the executable element is an extension type member.
2442-
bool get isExtensionTypeMember {
2443-
return hasModifier(Modifier.EXTENSION_TYPE_MEMBER);
2444-
}
2445-
2446-
set isExtensionTypeMember(bool value) {
2447-
setModifier(Modifier.EXTENSION_TYPE_MEMBER, value);
2448-
}
2449-
24502445
/// Whether the executable element is external.
24512446
///
24522447
/// Executable elements are external if they are explicitly marked as such

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,7 @@ class LibraryReader {
347347
reference: reference,
348348
firstFragment: fragments.first,
349349
);
350+
element.readModifiers(_reader);
350351

351352
// TODO(scheglov): type parameters
352353
// TODO(scheglov): formal parameters
@@ -785,6 +786,7 @@ class LibraryReader {
785786
var fragments = _readFragmentsById<GetterFragmentImpl>();
786787
// TODO(scheglov): link fragments.
787788
var element = GetterElementImpl(reference, fragments.first);
789+
element.readModifiers(_reader);
788790

789791
element.deferReadResolution(
790792
_createDeferredReadResolutionCallback((reader) {
@@ -912,6 +914,7 @@ class LibraryReader {
912914
reference: reference,
913915
firstFragment: fragments.first,
914916
);
917+
element.readModifiers(_reader);
915918
element.typeInferenceError = _readTopLevelInferenceError();
916919

917920
// TODO(scheglov): type parameters
@@ -1108,6 +1111,7 @@ class LibraryReader {
11081111
var fragments = _readFragmentsById<SetterFragmentImpl>();
11091112
// TODO(scheglov): link fragments.
11101113
var element = SetterElementImpl(reference, fragments.first);
1114+
element.readModifiers(_reader);
11111115

11121116
element.deferReadResolution(
11131117
_createDeferredReadResolutionCallback((reader) {

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ class BundleWriter {
198198
_sink.writeList(elements, (element) {
199199
_writeReference(element.reference);
200200
_sink.writeList(element.fragments, _writeFragmentId);
201+
element.writeModifiers(_sink);
201202

202203
_writeElementResolution(() {
203204
_resolutionSink.withTypeParameters(element.typeParameters, () {
@@ -476,6 +477,7 @@ class BundleWriter {
476477
_sink.writeList(elements, (element) {
477478
_writeReference(element.reference);
478479
_sink.writeList(element.fragments, _writeFragmentId);
480+
element.writeModifiers(_sink);
479481

480482
_writeElementResolution(() {
481483
_resolutionSink.writeType(element.returnType);
@@ -544,6 +546,7 @@ class BundleWriter {
544546
_sink.writeList(elements, (element) {
545547
_writeReference(element.reference);
546548
_sink.writeList(element.fragments, _writeFragmentId);
549+
element.writeModifiers(_sink);
547550
_sink._writeTopLevelInferenceError(element.typeInferenceError);
548551

549552
_writeElementResolution(() {
@@ -682,6 +685,7 @@ class BundleWriter {
682685
_sink.writeList(elements, (element) {
683686
_writeReference(element.reference);
684687
_sink.writeList(element.fragments, _writeFragmentId);
688+
element.writeModifiers(_sink);
685689

686690
_writeElementResolution(() {
687691
_resolutionSink.writeType(element.returnType);

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ class ElementBuilder {
106106
if (instanceElement is ExtensionTypeElementImpl) {
107107
for (var executable in instanceElement.children) {
108108
if (executable case ExecutableElementImpl executable) {
109-
// TODO(scheglov): should be a flag on the element instead
110-
executable.firstFragment.isExtensionTypeMember = true;
109+
executable.isExtensionTypeMember = true;
111110
}
112111
}
113112
}

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

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -267,11 +267,10 @@ class MethodElementFlags {
267267
static const int _isAbstract = 1 << 3;
268268
static const int _isAsynchronous = 1 << 4;
269269
static const int _isAugmentation = 1 << 5;
270-
static const int _isExtensionTypeMember = 1 << 6;
271-
static const int _isExternal = 1 << 7;
272-
static const int _isGenerator = 1 << 8;
273-
static const int _isStatic = 1 << 9;
274-
static const int _isSynthetic = 1 << 10;
270+
static const int _isExternal = 1 << 6;
271+
static const int _isGenerator = 1 << 7;
272+
static const int _isStatic = 1 << 8;
273+
static const int _isSynthetic = 1 << 9;
275274

276275
static void read(SummaryDataReader reader, MethodFragmentImpl element) {
277276
var bits = reader.readUInt30();
@@ -282,7 +281,6 @@ class MethodElementFlags {
282281
element.isAbstract = (bits & _isAbstract) != 0;
283282
element.isAsynchronous = (bits & _isAsynchronous) != 0;
284283
element.isAugmentation = (bits & _isAugmentation) != 0;
285-
element.isExtensionTypeMember = (bits & _isExtensionTypeMember) != 0;
286284
element.isExternal = (bits & _isExternal) != 0;
287285
element.isGenerator = (bits & _isGenerator) != 0;
288286
element.isStatic = (bits & _isStatic) != 0;
@@ -300,7 +298,6 @@ class MethodElementFlags {
300298
result |= element.isAbstract ? _isAbstract : 0;
301299
result |= element.isAsynchronous ? _isAsynchronous : 0;
302300
result |= element.isAugmentation ? _isAugmentation : 0;
303-
result |= element.isExtensionTypeMember ? _isExtensionTypeMember : 0;
304301
result |= element.isExternal ? _isExternal : 0;
305302
result |= element.isGenerator ? _isGenerator : 0;
306303
result |= element.isStatic ? _isStatic : 0;
@@ -363,11 +360,10 @@ class PropertyAccessorElementFlags {
363360
static const int _hasImplicitReturnType = 1 << 5;
364361
static const int _isAbstract = 1 << 6;
365362
static const int _isAsynchronous = 1 << 7;
366-
static const int _isExtensionTypeMember = 1 << 8;
367-
static const int _isExternal = 1 << 9;
368-
static const int _isGenerator = 1 << 10;
369-
static const int _isStatic = 1 << 11;
370-
static const int _isSynthetic = 1 << 12;
363+
static const int _isExternal = 1 << 8;
364+
static const int _isGenerator = 1 << 9;
365+
static const int _isStatic = 1 << 10;
366+
static const int _isSynthetic = 1 << 11;
371367

372368
static bool isGetter(int flags) => (flags & _isGetter) != 0;
373369

@@ -390,7 +386,6 @@ class PropertyAccessorElementFlags {
390386
element.hasImplicitReturnType = (byte & _hasImplicitReturnType) != 0;
391387
element.isAbstract = (byte & _isAbstract) != 0;
392388
element.isAsynchronous = (byte & _isAsynchronous) != 0;
393-
element.isExtensionTypeMember = (byte & _isExtensionTypeMember) != 0;
394389
element.isExternal = (byte & _isExternal) != 0;
395390
element.isGenerator = (byte & _isGenerator) != 0;
396391
element.isStatic = (byte & _isStatic) != 0;
@@ -410,7 +405,6 @@ class PropertyAccessorElementFlags {
410405
result |= element.hasImplicitReturnType ? _hasImplicitReturnType : 0;
411406
result |= element.isAbstract ? _isAbstract : 0;
412407
result |= element.isAsynchronous ? _isAsynchronous : 0;
413-
result |= element.isExtensionTypeMember ? _isExtensionTypeMember : 0;
414408
result |= element.isExternal ? _isExternal : 0;
415409
result |= element.isGenerator ? _isGenerator : 0;
416410
result |= element.isStatic ? _isStatic : 0;

0 commit comments

Comments
 (0)