Skip to content

Commit 7914ee2

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Move isSimplyBounded to elements.
Change-Id: I02eb9137b9a98c2effd5b4657f97a8415ab1a1dd Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/448223 Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Johnni Winther <[email protected]>
1 parent 321dfea commit 7914ee2

File tree

5 files changed

+27
-58
lines changed

5 files changed

+27
-58
lines changed

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

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

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

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

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2402,9 +2402,6 @@ class ExtensionFragmentImpl extends InstanceFragmentImpl
24022402
return name == null || Identifier.isPrivateName(name);
24032403
}
24042404

2405-
@override
2406-
bool get isSimplyBounded => true;
2407-
24082405
@override
24092406
MetadataImpl get metadata {
24102407
_ensureReadResolution();
@@ -4019,7 +4016,11 @@ abstract class InstanceElementImpl extends ElementImpl
40194016
@override
40204017
@trackedIncludedInId
40214018
bool get isSimplyBounded {
4022-
return _firstFragment.isSimplyBounded;
4019+
return hasModifier(Modifier.SIMPLY_BOUNDED);
4020+
}
4021+
4022+
set isSimplyBounded(bool value) {
4023+
setModifier(Modifier.SIMPLY_BOUNDED, value);
40234024
}
40244025

40254026
@override
@@ -4493,13 +4494,6 @@ abstract class InstanceFragmentImpl extends FragmentImpl
44934494
_getters = getters;
44944495
}
44954496

4496-
/// If the element defines a type, indicates whether the type may safely
4497-
/// appear without explicit type parameters as the bounds of a type parameter
4498-
/// declaration.
4499-
///
4500-
/// If the element does not define a type, returns `true`.
4501-
bool get isSimplyBounded;
4502-
45034497
@override
45044498
LibraryFragmentImpl get libraryFragment => enclosingUnit;
45054499

@@ -4733,12 +4727,6 @@ abstract class InterfaceElementImpl extends InstanceElementImpl
47334727
return name == '_Enum' && library.isDartCore;
47344728
}
47354729

4736-
set isSimplyBounded(bool value) {
4737-
for (var fragment in fragments) {
4738-
fragment.isSimplyBounded = value;
4739-
}
4740-
}
4741-
47424730
@override
47434731
@trackedIncludedInId
47444732
List<InterfaceTypeImpl> get mixins {
@@ -5023,9 +5011,7 @@ abstract class InterfaceElementImpl extends InstanceElementImpl
50235011
void _buildMixinAppConstructors() {}
50245012
}
50255013

5026-
@GenerateFragmentImpl(modifiers: _InterfaceFragmentImplModifiers.values)
50275014
abstract class InterfaceFragmentImpl extends InstanceFragmentImpl
5028-
with _InterfaceFragmentImplMixin
50295015
implements InterfaceFragment {
50305016
List<ConstructorFragmentImpl> _constructors = _Sentinel.constructorFragment;
50315017

@@ -9615,12 +9601,13 @@ class TypeAliasElementImpl extends ElementImpl
96159601
}
96169602

96179603
@override
9618-
bool get isSimplyBounded => _firstFragment.isSimplyBounded;
9604+
@trackedIncludedInId
9605+
bool get isSimplyBounded {
9606+
return hasModifier(Modifier.SIMPLY_BOUNDED);
9607+
}
96199608

96209609
set isSimplyBounded(bool value) {
9621-
for (var fragment in fragments) {
9622-
fragment.isSimplyBounded = value;
9623-
}
9610+
setModifier(Modifier.SIMPLY_BOUNDED, value);
96249611
}
96259612

96269613
@override
@@ -9782,9 +9769,8 @@ class TypeAliasElementImpl extends ElementImpl
97829769
/// An element that represents [GenericTypeAlias].
97839770
///
97849771
/// Clients may not extend, implement or mix-in this class.
9785-
@GenerateFragmentImpl(modifiers: _TypeAliasFragmentImplModifiers.values)
97869772
class TypeAliasFragmentImpl extends FragmentImpl
9787-
with DeferredResolutionReadingMixin, _TypeAliasFragmentImplMixin
9773+
with DeferredResolutionReadingMixin
97889774
implements TypeAliasFragment {
97899775
@override
97909776
final String? name;
@@ -10327,8 +10313,6 @@ enum _FragmentImplModifiers {
1032710313
isSynthetic,
1032810314
}
1032910315

10330-
enum _InterfaceFragmentImplModifiers { isSimplyBounded }
10331-
1033210316
enum _MixinFragmentImplModifiers { isBase }
1033310317

1033410318
enum _NonParameterVariableFragmentImplModifiers { hasInitializer }
@@ -10363,8 +10347,6 @@ class _Sentinel {
1036310347
static final List<LibraryImportImpl> libraryImport = List.unmodifiable([]);
1036410348
}
1036510349

10366-
enum _TypeAliasFragmentImplModifiers { isSimplyBounded }
10367-
1036810350
enum _VariableFragmentImplModifiers {
1036910351
/// Whether the variable element did not have an explicit type specified
1037010352
/// for it.

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

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -243,20 +243,6 @@ mixin _FragmentImplMixin {
243243
void setModifier(Modifier modifier, bool value);
244244
}
245245

246-
mixin _InterfaceFragmentImplMixin {
247-
bool get isSimplyBounded {
248-
return hasModifier(Modifier.SIMPLY_BOUNDED);
249-
}
250-
251-
set isSimplyBounded(bool value) {
252-
setModifier(Modifier.SIMPLY_BOUNDED, value);
253-
}
254-
255-
bool hasModifier(Modifier modifier);
256-
257-
void setModifier(Modifier modifier, bool value);
258-
}
259-
260246
mixin _MixinFragmentImplMixin {
261247
bool get isBase {
262248
return hasModifier(Modifier.BASE);
@@ -285,20 +271,6 @@ mixin _NonParameterVariableFragmentImplMixin {
285271
void setModifier(Modifier modifier, bool value);
286272
}
287273

288-
mixin _TypeAliasFragmentImplMixin {
289-
bool get isSimplyBounded {
290-
return hasModifier(Modifier.SIMPLY_BOUNDED);
291-
}
292-
293-
set isSimplyBounded(bool value) {
294-
setModifier(Modifier.SIMPLY_BOUNDED, value);
295-
}
296-
297-
bool hasModifier(Modifier modifier);
298-
299-
void setModifier(Modifier modifier, bool value);
300-
}
301-
302274
mixin _VariableFragmentImplMixin {
303275
/// Whether the variable element did not have an explicit type specified
304276
/// for it.

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,7 @@ class LibraryReader {
476476
var fragments = _readFragmentsById<EnumFragmentImpl>();
477477
var element = EnumElementImpl(reference, fragments.first);
478478
element.linkFragments(fragments);
479+
element.readModifiers(_reader);
479480

480481
// TODO(scheglov): consider reading lazily
481482
for (var fragment in element.fragments) {
@@ -562,6 +563,7 @@ class LibraryReader {
562563
var fragments = _readFragmentsById<ExtensionFragmentImpl>();
563564
var element = ExtensionElementImpl(reference, fragments.first);
564565
element.linkFragments(fragments);
566+
element.readModifiers(_reader);
565567

566568
for (var fragment in element.fragments) {
567569
fragment.ensureReadMembers();
@@ -617,6 +619,7 @@ class LibraryReader {
617619
var fragments = _readFragmentsById<ExtensionTypeFragmentImpl>();
618620
var element = ExtensionTypeElementImpl(reference, fragments.first);
619621
element.linkFragments(fragments);
622+
element.readModifiers(_reader);
620623

621624
element.hasRepresentationSelfReference = _reader.readBool();
622625
element.hasImplementsSelfReference = _reader.readBool();
@@ -688,6 +691,7 @@ class LibraryReader {
688691
firstFragment: fragments.first,
689692
);
690693
element.linkFragments(fragments);
694+
element.readModifiers(_reader);
691695

692696
element.deferReadResolution(
693697
_createDeferredReadResolutionCallback((reader) {
@@ -1172,6 +1176,7 @@ class LibraryReader {
11721176
var fragments = _readFragmentsById<TopLevelFunctionFragmentImpl>();
11731177
var element = TopLevelFunctionElementImpl(reference, fragments.first);
11741178
element.linkFragments(fragments);
1179+
element.readModifiers(_reader);
11751180

11761181
element.deferReadResolution(
11771182
_createDeferredReadResolutionCallback((reader) {
@@ -1231,6 +1236,7 @@ class LibraryReader {
12311236
var fragments = _readFragmentsById<TopLevelVariableFragmentImpl>();
12321237
var element = TopLevelVariableElementImpl(reference, fragments.first);
12331238
element.linkFragments(fragments);
1239+
element.readModifiers(_reader);
12341240

12351241
element.deferReadResolution(
12361242
_createDeferredReadResolutionCallback((reader) {
@@ -1267,6 +1273,7 @@ class LibraryReader {
12671273
var reference = _readReference();
12681274
var fragments = _readFragmentsById<TypeAliasFragmentImpl>();
12691275
var element = TypeAliasElementImpl(reference, fragments.first);
1276+
element.readModifiers(_reader);
12701277

12711278
element.deferReadResolution(
12721279
_createDeferredReadResolutionCallback((reader) {

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ class BundleWriter {
261261
_sink.writeList(elements, (element) {
262262
_writeReference(element.reference);
263263
_writeFragments(element.fragments);
264+
element.writeModifiers(_sink);
264265

265266
// TODO(scheglov): consider reading lazily
266267
_resolutionSink.withTypeParameters(element.typeParameters, () {
@@ -323,6 +324,7 @@ class BundleWriter {
323324
_sink.writeList(elements, (element) {
324325
_writeReference(element.reference);
325326
_writeFragments(element.fragments);
327+
element.writeModifiers(_sink);
326328

327329
// TODO(scheglov): consider reading lazily
328330
_resolutionSink.withTypeParameters(element.typeParameters, () {
@@ -357,6 +359,7 @@ class BundleWriter {
357359
_sink.writeList(elements, (element) {
358360
_writeReference(element.reference);
359361
_writeFragments(element.fragments);
362+
element.writeModifiers(_sink);
360363

361364
// TODO(fshcheglov): Put these separate flags into modifiers
362365
_sink.writeBool(element.hasRepresentationSelfReference);
@@ -407,6 +410,8 @@ class BundleWriter {
407410
_sink.writeList(elements, (element) {
408411
_writeReference(element.reference);
409412
_writeFragments(element.fragments);
413+
element.writeModifiers(_sink);
414+
410415
_writeElementResolution(() {
411416
_resolutionSink.writeType(element.type);
412417
});
@@ -709,6 +714,7 @@ class BundleWriter {
709714
_sink.writeList(elements, (element) {
710715
_writeReference(element.reference);
711716
_writeFragments(element.fragments);
717+
element.writeModifiers(_sink);
712718

713719
_writeElementResolution(() {
714720
_resolutionSink.withTypeParameters(element.typeParameters, () {
@@ -733,6 +739,7 @@ class BundleWriter {
733739
_sink.writeList(elements, (element) {
734740
_writeReference(element.reference);
735741
_writeFragments(element.fragments);
742+
element.writeModifiers(_sink);
736743
_writeElementResolution(() {
737744
_resolutionSink.writeType(element.type);
738745
});
@@ -750,6 +757,7 @@ class BundleWriter {
750757
_sink.writeList(elements, (element) {
751758
_writeReference(element.reference);
752759
_writeFragments(element.fragments);
760+
element.writeModifiers(_sink);
753761

754762
_writeElementResolution(() {
755763
_resolutionSink.withTypeParameters(element.typeParameters, () {

0 commit comments

Comments
 (0)