Skip to content

Commit e0494b7

Browse files
scheglovCommit Queue
authored andcommitted
Fine. Support for ExecutableElementImpl modifiers in manifests.
Change-Id: I7118a433cc753be13daf3fd5c890c7fff3060008 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/448781 Reviewed-by: Johnni Winther <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 60ce479 commit e0494b7

File tree

6 files changed

+8431
-801
lines changed

6 files changed

+8431
-801
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 = 545;
109+
static const int DATA_VERSION = 546;
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: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2086,15 +2086,18 @@ class EnumFragmentImpl extends InterfaceFragmentImpl implements EnumFragment {
20862086
}
20872087
}
20882088

2089+
@elementClass
20892090
abstract class ExecutableElementImpl extends FunctionTypedElementImpl
20902091
with InternalExecutableElement, DeferredResolutionReadingMixin {
20912092
TypeImpl? _returnType;
20922093
FunctionTypeImpl? _type;
20932094

20942095
@override
2096+
@trackedIncludedInId
20952097
ExecutableElementImpl get baseElement => this;
20962098

20972099
@override
2100+
@trackedIndirectly
20982101
List<Element> get children => [
20992102
...super.children,
21002103
...typeParameters,
@@ -2103,12 +2106,14 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
21032106

21042107
@Deprecated('Use children instead')
21052108
@override
2109+
@trackedIndirectly
21062110
List<Element> get children2 => children;
21072111

21082112
@override
21092113
ExecutableFragmentImpl get firstFragment;
21102114

21112115
@override
2116+
@trackedIncludedInId
21122117
List<FormalParameterElementImpl> get formalParameters {
21132118
_ensureReadResolution();
21142119
return _firstFragment.formalParameters
@@ -2125,11 +2130,13 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
21252130
///
21262131
/// Top-level declarations don't have enclosing element type parameters,
21272132
/// so for them this flag is always `false`.
2133+
@trackedIncludedInId
21282134
bool get hasEnclosingTypeParameterReference {
21292135
return _firstFragment.hasEnclosingTypeParameterReference;
21302136
}
21312137

21322138
@override
2139+
@trackedIncludedInId
21332140
bool get hasImplicitReturnType {
21342141
for (var fragment in fragments) {
21352142
if (!fragment.hasImplicitReturnType) {
@@ -2139,11 +2146,13 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
21392146
return true;
21402147
}
21412148

2149+
@trackedIncludedInId
21422150
bool get invokesSuperSelf {
21432151
return _firstFragment.hasModifier(Modifier.INVOKES_SUPER_SELF);
21442152
}
21452153

21462154
@override
2155+
@trackedIncludedInId
21472156
bool get isAbstract {
21482157
for (var fragment in fragments) {
21492158
if (!fragment.isAbstract) {
@@ -2154,6 +2163,7 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
21542163
}
21552164

21562165
@override
2166+
@trackedIncludedInId
21572167
bool get isExtensionTypeMember {
21582168
return hasModifier(Modifier.EXTENSION_TYPE_MEMBER);
21592169
}
@@ -2163,24 +2173,30 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
21632173
}
21642174

21652175
@override
2176+
@trackedIncludedInId
21662177
bool get isExternal {
21672178
return _firstFragment.isExternal;
21682179
}
21692180

21702181
@override
2182+
@trackedIncludedInId
21712183
bool get isSimplyBounded => true;
21722184

21732185
@override
2186+
@trackedIncludedInId
21742187
bool get isStatic {
21752188
return _firstFragment.isStatic;
21762189
}
21772190

21782191
@override
2192+
@trackedIncludedInId
21792193
bool get isSynthetic {
21802194
return _firstFragment.isSynthetic;
21812195
}
21822196

2197+
@trackedDirectlyOpaque
21832198
ExecutableFragmentImpl get lastFragment {
2199+
globalResultRequirements?.recordOpaqueApiUse(this, 'lastFragment');
21842200
var result = _firstFragment;
21852201
while (true) {
21862202
if (result.nextFragment case ExecutableFragmentImpl nextFragment) {
@@ -2193,9 +2209,11 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
21932209

21942210
@Deprecated('Use library instead')
21952211
@override
2212+
@trackedIndirectly
21962213
LibraryElement get library2 => library;
21972214

21982215
@override
2216+
@trackedIncludedInId
21992217
MetadataImpl get metadata {
22002218
var annotations = <ElementAnnotationImpl>[];
22012219
for (var fragment in fragments) {
@@ -2206,9 +2224,11 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
22062224

22072225
@Deprecated('Use metadata instead')
22082226
@override
2227+
@trackedIndirectly
22092228
MetadataImpl get metadata2 => metadata;
22102229

22112230
@override
2231+
@trackedIncludedInId
22122232
TypeImpl get returnType {
22132233
_ensureReadResolution();
22142234

@@ -2237,6 +2257,7 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
22372257
}
22382258

22392259
@override
2260+
@trackedIncludedInId
22402261
FunctionTypeImpl get type {
22412262
return _type ??= FunctionTypeImpl(
22422263
typeParameters: typeParameters,
@@ -2247,6 +2268,7 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
22472268
}
22482269

22492270
@override
2271+
@trackedIncludedInId
22502272
List<TypeParameterElementImpl> get typeParameters {
22512273
return _firstFragment.typeParameters
22522274
.map((fragment) => fragment.element)
@@ -2255,6 +2277,7 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
22552277

22562278
@Deprecated('Use typeParameters instead')
22572279
@override
2280+
@trackedIndirectly
22582281
List<TypeParameterElementImpl> get typeParameters2 {
22592282
return typeParameters;
22602283
}
@@ -2263,6 +2286,7 @@ abstract class ExecutableElementImpl extends FunctionTypedElementImpl
22632286
ExecutableFragmentImpl get _firstFragment;
22642287

22652288
@override
2289+
@trackedIndirectly
22662290
void appendTo(ElementDisplayStringBuilder builder) {
22672291
builder.writeExecutableElement(this, name!);
22682292
}

0 commit comments

Comments
 (0)