Skip to content

Commit 09f6d8b

Browse files
scheglovCommit Queue
authored andcommitted
Use select() instead of NodeLocator in CorrectionProducerContext.
Includes https://dart-review.googlesource.com/c/sdk/+/310060, as it is 2023-06-20 @ 1243 Change-Id: I8f9788bb3a7b669191e34a8ec42b81d2ebcd31b9 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/310325 Reviewed-by: Brian Wilkerson <[email protected]> Reviewed-by: Samuel Rawlins <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent c2ffa07 commit 09f6d8b

File tree

5 files changed

+35
-11
lines changed

5 files changed

+35
-11
lines changed

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import 'package:analysis_server/plugin/edit/fix/fix_dart.dart';
99
import 'package:analysis_server/src/services/correction/fix/data_driven/transform_override_set.dart';
1010
import 'package:analysis_server/src/services/correction/util.dart';
1111
import 'package:analysis_server/src/utilities/flutter.dart';
12+
import 'package:analysis_server/src/utilities/selection.dart';
1213
import 'package:analyzer/dart/analysis/code_style_options.dart';
1314
import 'package:analyzer/dart/analysis/features.dart';
1415
import 'package:analyzer/dart/analysis/results.dart';
@@ -164,9 +165,11 @@ class CorrectionProducerContext<T extends ParsedUnitResult> {
164165
int selectionOffset = -1,
165166
int selectionLength = 0,
166167
}) {
167-
var selectionEnd = selectionOffset + selectionLength;
168-
var locator = NodeLocator(selectionOffset, selectionEnd);
169-
var node = locator.searchWithin(resolvedResult.unit);
168+
final selection = resolvedResult.unit.select(
169+
offset: selectionOffset,
170+
length: selectionLength,
171+
);
172+
var node = selection?.coveringNode;
170173
node ??= resolvedResult.unit;
171174

172175
final token = _tokenAt(node, selectionOffset) ?? node.beginToken;

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ class AddMissingEnumCaseClauses extends ResolvedCorrectionProducer {
3030
if (statement is! SwitchStatement) {
3131
return;
3232
}
33+
if (statement.rightParenthesis.isSynthetic) {
34+
return;
35+
}
3336

3437
String? enumName;
3538
var prefix = '';

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ class ConvertToIfNull extends ResolvedCorrectionProducer {
4141
defaultExpression = node.elseExpression;
4242
}
4343

44+
if (defaultExpression is SimpleIdentifier &&
45+
defaultExpression.isSynthetic) {
46+
return;
47+
}
48+
4449
var parentheses = defaultExpression.precedence <
4550
Precedence.forTokenType(TokenType.QUESTION_QUESTION);
4651

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ class MakeReturnTypeNullable extends ResolvedCorrectionProducer {
2424
if (node is! Expression) {
2525
return;
2626
}
27+
if (node is SimpleIdentifier && node.isSynthetic) {
28+
return;
29+
}
2730

2831
final type = node.staticType;
2932
if (type == null) {

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

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,24 @@ class RemoveEmptyConstructorBody extends ResolvedCorrectionProducer {
2424

2525
@override
2626
Future<void> compute(ChangeBuilder builder) async {
27-
var parent = node.parent;
28-
if (node is Block && parent is BlockFunctionBody) {
29-
await builder.addDartFileEdit(file, (builder) {
30-
builder.addSimpleReplacement(
31-
utils.getLinesRange(range.node(parent)),
32-
';',
33-
);
34-
});
27+
final node = this.node;
28+
if (node is! Block) {
29+
return;
3530
}
31+
if (node.leftBracket.isSynthetic || node.rightBracket.isSynthetic) {
32+
return;
33+
}
34+
35+
final blockBody = node.parent;
36+
if (blockBody is! BlockFunctionBody) {
37+
return;
38+
}
39+
40+
await builder.addDartFileEdit(file, (builder) {
41+
builder.addSimpleReplacement(
42+
utils.getLinesRange(range.node(blockBody)),
43+
';',
44+
);
45+
});
3646
}
3747
}

0 commit comments

Comments
 (0)