Skip to content

Commit 8eb24f0

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Make 'get library2' non-nullable in more places.
Change-Id: I0f9a27ce61367826fb1a1af3969cef0014639a31 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/398740 Reviewed-by: Samuel Rawlins <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 015f872 commit 8eb24f0

File tree

9 files changed

+57
-39
lines changed

9 files changed

+57
-39
lines changed

pkg/analysis_server/test/src/utilities/selection_coverage_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ class SelectionCoverageTest {
247247
var overridden = inheritanceManager.getOverridden4(
248248
visitedNodeList.enclosingElement2 as InterfaceElement2,
249249
Name(
250-
visitedNodeList.library2!.uri,
250+
visitedNodeList.library2.uri,
251251
visitedNodeList.name3!,
252252
),
253253
);

pkg/analysis_server/tool/code_completion/flutter_metrics.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,7 @@ class FlutterDataCollector extends RecursiveAstVisitor<void> {
140140
}
141141
var childWidget = element.enclosingElement2.name3!;
142142
var library = element.library2;
143-
if (library != null &&
144-
!library.uri.toString().startsWith('package:flutter/')) {
143+
if (!library.uri.toString().startsWith('package:flutter/')) {
145144
childWidget = 'user-defined';
146145
}
147146
data.recordWidgetCreation(childWidget, parentWidget);

pkg/analyzer/lib/dart/element/element2.dart

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1148,9 +1148,6 @@ abstract class InstanceElement2
11481148
/// The getters declared in this element.
11491149
List<GetterElement> get getters2;
11501150

1151-
@override
1152-
LibraryElement2 get library2;
1153-
11541151
/// The methods declared in this element.
11551152
List<MethodElement2> get methods2;
11561153

@@ -1957,9 +1954,6 @@ abstract class MethodElement2 implements ExecutableElement2 {
19571954
/// The test might be based on the name of the executable element, in which
19581955
/// case the result will be correct when the name is legal.
19591956
bool get isOperator;
1960-
1961-
@override
1962-
LibraryElement2 get library2;
19631957
}
19641958

19651959
/// The portion of a [MethodElement2] contributed by a single declaration.
@@ -2250,6 +2244,9 @@ abstract class PropertyInducingElement2
22502244
/// Whether any fragment of this variable has an initializer at declaration.
22512245
bool get hasInitializer;
22522246

2247+
@override
2248+
LibraryElement2 get library2;
2249+
22532250
/// The setter associated with this variable.
22542251
///
22552252
/// Returns `null` if the variable is effectively `final` and therefore does
@@ -2410,9 +2407,6 @@ abstract class TopLevelFunctionElement implements ExecutableElement2 {
24102407
///
24112408
/// A top-level function is an entry point if it has the name `main`.
24122409
bool get isEntryPoint;
2413-
2414-
@override
2415-
LibraryElement2 get library2;
24162410
}
24172411

24182412
/// The portion of a [TopLevelFunctionElement] contributed by a single
@@ -2568,9 +2562,6 @@ abstract class TypeParameterElement2 implements TypeDefiningElement2 {
25682562
@override
25692563
TypeParameterFragment get firstFragment;
25702564

2571-
@override
2572-
LibraryElement2 get library2;
2573-
25742565
/// Returns the [TypeParameterType] with the given [nullabilitySuffix] for
25752566
/// this type parameter.
25762567
TypeParameterType instantiate({
@@ -2607,6 +2598,9 @@ abstract class TypeParameterizedElement2 implements Element2, Annotatable {
26072598
/// If the element does not define a type, returns `true`.
26082599
bool get isSimplyBounded;
26092600

2601+
@override
2602+
LibraryElement2 get library2;
2603+
26102604
/// The type parameters declared by this element directly.
26112605
///
26122606
/// This does not include type parameters that are declared by any enclosing

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

Lines changed: 43 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3848,6 +3848,12 @@ abstract class ExecutableElementImpl2 extends FunctionTypedElementImpl2
38483848
var firstFragment = this.firstFragment as ExecutableElementImpl;
38493849
return firstFragment.hasModifier(Modifier.INVOKES_SUPER_SELF);
38503850
}
3851+
3852+
@override
3853+
LibraryElement2 get library2 {
3854+
var firstFragment = this.firstFragment as ExecutableElementImpl;
3855+
return firstFragment.library2!;
3856+
}
38513857
}
38523858

38533859
/// A concrete implementation of an [ExtensionElement].
@@ -4282,6 +4288,11 @@ class FieldElementImpl2 extends PropertyInducingElementImpl2
42824288
@override
42834289
ElementKind get kind => ElementKind.FIELD;
42844290

4291+
@override
4292+
LibraryElement2 get library2 {
4293+
return firstFragment.library2!;
4294+
}
4295+
42854296
@override
42864297
String? get name3 => firstFragment.name2;
42874298

@@ -4850,15 +4861,6 @@ mixin FragmentedElementMixin<E extends Fragment> implements _Fragmented<E> {
48504861
return false;
48514862
}
48524863

4853-
LibraryElement2? get library2 {
4854-
if (firstFragment is ElementImpl) {
4855-
return (firstFragment as ElementImpl).library2;
4856-
}
4857-
// We should never get to this point.
4858-
assert(false, 'Fragment does not implement ElementImpl');
4859-
return null;
4860-
}
4861-
48624864
/// A list of all of the fragments from which this element is composed.
48634865
List<E> get _fragments {
48644866
var result = <E>[];
@@ -6463,6 +6465,11 @@ class LabelElementImpl extends ElementImpl
64636465
@override
64646466
ElementKind get kind => ElementKind.LABEL;
64656467

6468+
@override
6469+
LibraryElement2 get library2 {
6470+
return libraryFragment.element;
6471+
}
6472+
64666473
@override
64676474
LibraryFragment get libraryFragment => enclosingUnit as LibraryFragment;
64686475

@@ -6505,7 +6512,9 @@ class LabelElementImpl2 extends ElementImpl2
65056512
LabelFragment get firstFragment => _wrappedElement;
65066513

65076514
@override
6508-
LibraryElement2 get library2 => super.library2!;
6515+
LibraryElement2 get library2 {
6516+
return _wrappedElement.library2;
6517+
}
65096518

65106519
@override
65116520
T? accept2<T>(ElementVisitor2<T> visitor) {
@@ -7329,6 +7338,11 @@ class LocalVariableElementImpl extends NonParameterVariableElementImpl
73297338
@override
73307339
ElementKind get kind => ElementKind.LOCAL_VARIABLE;
73317340

7341+
@override
7342+
LibraryElement2 get library2 {
7343+
return libraryFragment.element;
7344+
}
7345+
73327346
@override
73337347
LibraryFragment get libraryFragment => enclosingUnit as LibraryFragment;
73347348

@@ -7383,6 +7397,11 @@ class LocalVariableElementImpl2 extends PromotableElementImpl2
73837397
@override
73847398
bool get isStatic => _wrappedElement.isStatic;
73857399

7400+
@override
7401+
LibraryElement2 get library2 {
7402+
return _wrappedElement.library2;
7403+
}
7404+
73867405
@override
73877406
DartType get type => _wrappedElement.type;
73887407

@@ -7936,9 +7955,6 @@ class MethodElementImpl2 extends ExecutableElementImpl2
79367955
@override
79377956
ElementKind get kind => ElementKind.METHOD;
79387957

7939-
@override
7940-
LibraryElement2 get library2 => super.library2!;
7941-
79427958
@override
79437959
String? get lookupName {
79447960
if (name3 == '-' && formalParameters.isEmpty) {
@@ -10097,7 +10113,9 @@ class TopLevelFunctionElementImpl extends ExecutableElementImpl2
1009710113
ElementKind get kind => ElementKind.FUNCTION;
1009810114

1009910115
@override
10100-
LibraryElement2 get library2 => super.library2!;
10116+
LibraryElement2 get library2 {
10117+
return firstFragment.library2!;
10118+
}
1010110119

1010210120
@override
1010310121
String? get name3 => firstFragment.name;
@@ -10205,6 +10223,11 @@ class TopLevelVariableElementImpl2 extends PropertyInducingElementImpl2
1020510223
@override
1020610224
ElementKind get kind => ElementKind.TOP_LEVEL_VARIABLE;
1020710225

10226+
@override
10227+
LibraryElement2 get library2 {
10228+
return firstFragment.libraryFragment.element;
10229+
}
10230+
1020810231
@override
1020910232
String? get name3 => firstFragment.name2;
1021010233

@@ -10509,6 +10532,11 @@ class TypeAliasElementImpl2 extends TypeDefiningElementImpl2
1050910532
@override
1051010533
ElementKind get kind => ElementKind.TYPE_ALIAS;
1051110534

10535+
@override
10536+
LibraryElement2 get library2 {
10537+
return firstFragment.library2!;
10538+
}
10539+
1051210540
@override
1051310541
String? get name3 => firstFragment.name2;
1051410542

@@ -10770,7 +10798,7 @@ class TypeParameterElementImpl2 extends TypeDefiningElementImpl2
1077010798
ElementKind get kind => ElementKind.TYPE_PARAMETER;
1077110799

1077210800
@override
10773-
LibraryElement2 get library2 => super.library2!;
10801+
LibraryElement2? get library2 => firstFragment.library2;
1077410802

1077510803
@override
1077610804
Element? get _enclosingFunction => firstFragment._enclosingElement3;
@@ -11017,9 +11045,6 @@ mixin WrappedElementMixin implements ElementImpl2 {
1101711045
@override
1101811046
ElementKind get kind => _wrappedElement.kind;
1101911047

11020-
@override
11021-
LibraryElement2? get library2 => _wrappedElement.library2;
11022-
1102311048
@override
1102411049
String? get name3 => _wrappedElement.name3;
1102511050

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ abstract class ExecutableMember extends Member
263263
LibraryElement get library => _declaration.library!;
264264

265265
@override
266-
LibraryElement2? get library2 => _element2.library2;
266+
LibraryElement2 get library2 => _element2.library2;
267267

268268
@override
269269
Source get librarySource => _declaration.librarySource!;
@@ -555,7 +555,7 @@ class FieldMember extends VariableMember
555555
LibraryElement get library => _declaration.library!;
556556

557557
@override
558-
LibraryElement2? get library2 => _element2.library2;
558+
LibraryElement2 get library2 => _element2.library2;
559559

560560
@override
561561
String? get lookupName => _element2.lookupName;

pkg/linter/lib/src/extensions.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ extension ConstructorElementExtension on ConstructorElement2 {
267267
required String className,
268268
required String constructorName,
269269
}) =>
270-
library2?.name3 == uri &&
270+
library2.name3 == uri &&
271271
enclosingElement2.name3 == className &&
272272
name3 == constructorName;
273273
}

pkg/linter/lib/src/rules/library_annotations.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,6 @@ extension on ElementAnnotation {
9191
var element = element2;
9292
return element is ConstructorElement2 &&
9393
element.enclosingElement2.name3 == className &&
94-
element.library2?.name3 == libraryName;
94+
element.library2.name3 == libraryName;
9595
}
9696
}

pkg/linter/lib/src/rules/unreachable_from_main.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ class _ReferenceVisitor extends RecursiveAstVisitor<void> {
196196
var annotation = metadata.annotations[i].element2;
197197
if (annotation is GetterElement &&
198198
annotation.name3 == 'reflectiveTest' &&
199-
annotation.library2?.name3 == 'test_reflective_loader') {
199+
annotation.library2.name3 == 'test_reflective_loader') {
200200
// The class is instantiated through the use of mirrors in
201201
// 'test_reflective_loader'.
202202
var unnamedConstructor = element.constructors2

pkg/linter/tool/checks/rules/no_solo_tests.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,6 @@ extension on Annotation {
6161
var element = element2;
6262
return element is GetterElement &&
6363
element.name3 == 'soloTest' &&
64-
element.library2?.name3 == 'test_reflective_loader';
64+
element.library2.name3 == 'test_reflective_loader';
6565
}
6666
}

0 commit comments

Comments
 (0)