Skip to content

Commit a278738

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Make PropertyAccessorElement.variable non-nullable.
The null assert in `PropertyAccessorElementImpl.variable` is safe because `ElementBuilder` always creates synthetic `TopLevelVariableFragmentImpl` or `FieldElementImpl` for a getter or setter. And the other way around, non-synthetic `TopLevelVariableFragmentImpl` or `FieldElementImpl` when created associate itself with synthetic getter / setter. Change-Id: I40e4ce866edffab6c8bcdf6e408bd1bbfbba6581 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/442246 Reviewed-by: Samuel Rawlins <[email protected]> Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 9f127c9 commit a278738

File tree

57 files changed

+116
-256
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+116
-256
lines changed

pkg/analysis_server/lib/src/cider/local_library_contributor.dart

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,7 @@ class LibraryElementSuggestionBuilder
101101
void visitGetterElement(GetterElement element) {
102102
var variable = element.variable;
103103
if (opType.includeReturnValueSuggestions ||
104-
(opType.includeAnnotationSuggestions &&
105-
variable != null &&
106-
variable.isConst)) {
104+
(opType.includeAnnotationSuggestions && variable.isConst)) {
107105
var parent = element.enclosingElement;
108106
if (parent is InterfaceElement || parent is ExtensionElement) {
109107
if (element.isSynthetic) {
@@ -140,9 +138,7 @@ class LibraryElementSuggestionBuilder
140138
void visitSetterElement(SetterElement element) {
141139
var variable = element.variable;
142140
if (opType.includeReturnValueSuggestions ||
143-
(opType.includeAnnotationSuggestions &&
144-
variable != null &&
145-
variable.isConst)) {
141+
(opType.includeAnnotationSuggestions && variable.isConst)) {
146142
var parent = element.enclosingElement;
147143
if (parent is InterfaceElement || parent is ExtensionElement) {
148144
if (!element.isSynthetic) {

pkg/analysis_server/lib/src/cider/rename.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -437,9 +437,6 @@ class CiderRenameComputer {
437437
}
438438
if (element is PropertyAccessorElement) {
439439
element = element.variable;
440-
if (element == null) {
441-
return null;
442-
}
443440
}
444441
if (!_canRenameElement(element)) {
445442
return null;

pkg/analysis_server/lib/src/computer/computer_documentation.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class DartDocumentationComputer {
3333
element,
3434
...overridden.superElements,
3535
...overridden.interfaceElements,
36-
if (element case PropertyAccessorElement(:var variable?)) variable,
36+
if (element case PropertyAccessorElement(:var variable)) variable,
3737
];
3838
for (var candidate in candidates) {
3939
if (candidate.documentationCommentOrNull != null) {

pkg/analysis_server/lib/src/domains/analysis/occurrences_dart.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ class DartUnitOccurrencesComputerVisitor extends GeneralizingAstVisitor<void> {
400400
if (canonicalElement is FieldFormalParameterElement) {
401401
canonicalElement = canonicalElement.field;
402402
} else if (canonicalElement case PropertyAccessorElement(
403-
:var variable?,
403+
:var variable,
404404
) when !variable.isSynthetic) {
405405
canonicalElement = variable;
406406
}

pkg/analysis_server/lib/src/lsp/handlers/custom/handler_summary.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,10 @@ class SummaryWriter {
7575
for (var element in definedNames.values) {
7676
if (element.isSynthetic) {
7777
if (element is GetterElement) {
78-
element = element.variable!;
78+
element = element.variable;
7979
} else if (element is SetterElement &&
8080
element.correspondingGetter == null) {
81-
element = element.variable!;
81+
element = element.variable;
8282
} else {
8383
continue;
8484
}

pkg/analysis_server/lib/src/lsp/handlers/handler_document_color_presentation.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ class DocumentColorPresentationHandler
249249
parent is PrefixedIdentifier ? parent.element : node.element;
250250

251251
return switch (element) {
252-
PropertyAccessorElement(:var variable) => variable?.isConst ?? false,
252+
PropertyAccessorElement(:var variable) => variable.isConst,
253253
VariableElement() => element.isConst,
254254
_ => false,
255255
};

pkg/analysis_server/lib/src/lsp/handlers/handler_references.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class ReferencesHandler
6969

7070
var element = switch (node?.getElement()) {
7171
FieldFormalParameterElement(:var field?) => field,
72-
PropertyAccessorElement(:var variable?) => variable,
72+
PropertyAccessorElement(:var variable) => variable,
7373
var element => element,
7474
};
7575

pkg/analysis_server/lib/src/lsp/handlers/handler_type_definition.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ class TypeDefinitionHandler
217217
if (writeElement
218218
case analyzer.GetterElement(:var variable) ||
219219
analyzer.SetterElement(:var variable)) {
220-
return variable?.type;
220+
return variable.type;
221221
}
222222
}
223223
}

pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2723,9 +2723,7 @@ extension on PropertyAccessorElement {
27232723
/// Whether this accessor is an accessor for a constant variable.
27242724
bool get isConst {
27252725
if (isSynthetic) {
2726-
if (variable case var variable?) {
2727-
return variable.isConst;
2728-
}
2726+
return variable.isConst;
27292727
}
27302728
return false;
27312729
}

pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -199,11 +199,7 @@ class FeatureComputer {
199199
} else if (element is FieldElement && element.isEnumConstant) {
200200
return protocol.ElementKind.ENUM_CONSTANT;
201201
} else if (element is PropertyAccessorElement) {
202-
var variable = element.variable;
203-
if (variable == null) {
204-
return protocol.ElementKind.UNKNOWN;
205-
}
206-
element = variable;
202+
element = element.variable;
207203
}
208204
var kind = element.kind;
209205
if (kind == ElementKind.CONSTRUCTOR) {
@@ -255,11 +251,7 @@ class FeatureComputer {
255251
} else if (element is FieldElement && element.isEnumConstant) {
256252
return protocol.ElementKind.ENUM_CONSTANT;
257253
} else if (element is PropertyAccessorElement) {
258-
var variable = element.variable;
259-
if (variable == null) {
260-
return protocol.ElementKind.UNKNOWN;
261-
}
262-
element = variable;
254+
element = element.variable;
263255
}
264256
var kind = element.kind;
265257
if (kind == ElementKind.CONSTRUCTOR) {
@@ -392,7 +384,7 @@ class FeatureComputer {
392384
return 1.0;
393385
} else if (element is PropertyAccessorElement && element.isSynthetic) {
394386
var variable = element.variable;
395-
if (variable != null && variable.isStatic && variable.isConst) {
387+
if (variable.isStatic && variable.isConst) {
396388
return 1.0;
397389
}
398390
}

0 commit comments

Comments
 (0)