Skip to content

Commit 5ef250a

Browse files
bwilkersonCommit Queue
authored andcommitted
Rework the new element model so that all elements have fragments
Change-Id: Ic4fc0368cabc5fa8dfc21c958e1619777f2701b5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/392541 Commit-Queue: Brian Wilkerson <[email protected]> Reviewed-by: Konstantin Shcheglov <[email protected]>
1 parent ae0510d commit 5ef250a

File tree

19 files changed

+625
-234
lines changed

19 files changed

+625
-234
lines changed

pkg/analysis_server/lib/src/protocol_server.dart

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -261,38 +261,17 @@ Location? newLocation_fromElement(engine.Element? element) {
261261
return _locationForArgs(unitElement, range);
262262
}
263263

264-
/// Create a Location based on an [engine.Element].
264+
/// Create a Location based on an [engine.Element2].
265265
Location? newLocation_fromElement2(engine.Element2? element) {
266266
if (element == null) {
267267
return null;
268268
}
269269
if (element is engine.FragmentedElement) {
270270
var fragment = (element as engine.FragmentedElement).firstFragment;
271-
if (fragment == null) {
272-
return null;
273-
}
274271
var offset = fragment.name2?.nameOffset ?? 0;
275272
var length = fragment.name2?.name.length ?? 0;
276273
var range = engine.SourceRange(offset, length);
277274
return _locationForArgs2(fragment, range);
278-
} else if (element is engine.LocalFunctionElement) {
279-
var offset = element.nameOffset;
280-
var length = element.name3?.length ?? 0;
281-
var range = engine.SourceRange(offset, length);
282-
var fragment = element.enclosingFunction;
283-
return _locationForArgs2(fragment, range);
284-
} else if (element is engine.LocalVariableElement2) {
285-
var offset = element.nameOffset;
286-
var length = element.name3?.length ?? 0;
287-
var range = engine.SourceRange(offset, length);
288-
var fragment = element.enclosingFunction;
289-
return _locationForArgs2(fragment, range);
290-
} else if (element is engine.LabelElement2) {
291-
var offset = element.nameOffset;
292-
var length = element.name3?.length ?? 0;
293-
var range = engine.SourceRange(offset, length);
294-
var fragment = element.enclosingFunction;
295-
return _locationForArgs2(fragment, range);
296275
} else {
297276
assert(false, 'Could not convert ${element.runtimeType} to Location.');
298277
return null;

pkg/analysis_server/lib/src/services/correction/dart/add_async.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class AddAsync extends ResolvedCorrectionProducer {
3939
switch (node) {
4040
case FunctionDeclaration():
4141
body = node.functionExpression.body;
42-
if (node.declaredElement2 case var declaredElement?) {
42+
if (node.declaredFragment?.element case var declaredElement?) {
4343
returnType = declaredElement.returnType;
4444
} else if (node.declaredFragment case var declaredFragment?) {
4545
returnType = declaredFragment.element.returnType;

pkg/analysis_server/lib/src/services/correction/dart/add_field_formal_parameters.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ class AddFieldFormalParameters extends ResolvedCorrectionProducer {
4444
var fields = ErrorVerifier.computeNotInitializedFields2(constructor);
4545
fields.retainWhere((FieldElement2 field) => field.isFinal);
4646
fields.sort((a, b) =>
47-
a.firstFragment!.name2!.nameOffset -
48-
b.firstFragment!.name2!.nameOffset);
47+
a.firstFragment.name2!.nameOffset - b.firstFragment.name2!.nameOffset);
4948

5049
// Specialize for Flutter widgets.
5150
if (superType.isExactlyStatelessWidgetType ||

pkg/analysis_server/lib/src/services/correction/dart/add_late.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class AddLate extends ResolvedCorrectionProducer {
6767
!variableElement.isSynthetic &&
6868
!variableElement.isLate &&
6969
variableElement.setter2 == null) {
70-
var variableFragment = variableElement.firstFragment!;
70+
var variableFragment = variableElement.firstFragment;
7171
var declarationResult =
7272
await sessionHelper.getElementDeclaration2(variableFragment);
7373
if (declarationResult == null) {

pkg/analysis_server/lib/src/services/correction/dart/add_missing_parameter.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class _AddMissingOptionalPositionalParameter extends _AddMissingParameter {
6060
if (_executableParameters.required.isNotEmpty) {
6161
var lastElement = _executableParameters.required.last;
6262
var prevNode = await _executableParameters
63-
.getParameterNode2(lastElement.firstFragment!);
63+
.getParameterNode2(lastElement.firstFragment);
6464
await _addParameter(builder, prevNode?.end, prefix, ']');
6565
} else {
6666
var parameterList = await _executableParameters.getParameterList();
@@ -122,7 +122,7 @@ class _AddMissingRequiredPositionalParameter extends _AddMissingParameter {
122122
if (_executableParameters.required.isNotEmpty) {
123123
var lastElement = _executableParameters.required.last;
124124
var prevNode = await _executableParameters
125-
.getParameterNode2(lastElement.firstFragment!);
125+
.getParameterNode2(lastElement.firstFragment);
126126
await _addParameter(builder, prevNode?.end, ', ', '');
127127
} else {
128128
var parameterList = await _executableParameters.getParameterList();

pkg/analysis_server/lib/src/services/correction/dart/add_missing_parameter_named.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,11 @@ class AddMissingParameterNamed extends ResolvedCorrectionProducer {
7272
}
7373

7474
if (context.named.isNotEmpty) {
75-
var lastFirst = context.named.last.firstFragment!;
75+
var lastFirst = context.named.last.firstFragment;
7676
var prevNode = await context.getParameterNode2(lastFirst);
7777
await addParameter(prevNode?.end, ', ', '');
7878
} else if (context.required.isNotEmpty) {
79-
var lastFirst = context.required.last.firstFragment!;
79+
var lastFirst = context.required.last.firstFragment;
8080
var prevNode = await context.getParameterNode2(lastFirst);
8181
await addParameter(prevNode?.end, ', {', '}');
8282
} else {

pkg/analysis_server/lib/src/services/correction/dart/make_field_not_final.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class MakeFieldNotFinal extends ResolvedCorrectionProducer {
5757
}
5858

5959
var declaration =
60-
await sessionHelper.getElementDeclaration2(variable.firstFragment!);
60+
await sessionHelper.getElementDeclaration2(variable.firstFragment);
6161
var variableNode = declaration?.node;
6262
if (variableNode is! VariableDeclaration) {
6363
return;

pkg/analysis_server/lib/src/services/correction/dart/remove_leading_underscore.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class RemoveLeadingUnderscore extends ResolvedCorrectionProducer {
4444
element = node.declaredElement2;
4545
} else if (node is FunctionDeclaration) {
4646
nameToken = node.name;
47-
element = node.declaredElement2 ?? node.declaredFragment?.element;
47+
element = node.declaredFragment?.element;
4848
} else {
4949
return;
5050
}

0 commit comments

Comments
 (0)