Skip to content

Commit c235fad

Browse files
DanTupCommit Queue
authored andcommitted
Fix some EOL bugs + remove useLineEndingsForPlatform=false from refactor tests
Some additional work towards #60234, along with a couple of small fixes for issues uncovered while getting the tests running with \r\n. Change-Id: Iff3700fad017825f65d64195d844b1694163456a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/441840 Reviewed-by: Brian Wilkerson <[email protected]> Reviewed-by: Samuel Rawlins <[email protected]> Commit-Queue: Brian Wilkerson <[email protected]> Reviewed-by: Konstantin Shcheglov <[email protected]>
1 parent fd33d9e commit c235fad

File tree

19 files changed

+101
-98
lines changed

19 files changed

+101
-98
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import 'package:analysis_server/src/services/refactoring/legacy/naming_conventio
99
import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
1010
import 'package:analysis_server/src/services/search/hierarchy.dart';
1111
import 'package:analysis_server/src/utilities/change_builder.dart';
12+
import 'package:analysis_server_plugin/edit/correction_utils.dart';
1213
import 'package:analyzer/dart/ast/ast.dart';
1314
import 'package:analyzer/dart/element/element.dart';
1415
import 'package:analyzer/source/line_info.dart';
@@ -376,6 +377,7 @@ class CheckNameResponse {
376377
return null;
377378
}
378379

380+
var utils = CorrectionUtils(resolvedUnit);
379381
var node = result.node;
380382
if (node is! NamedCompilationUnitMember) {
381383
return null;
@@ -389,6 +391,7 @@ class CheckNameResponse {
389391
constructorName: newName,
390392
isConst: node is EnumDeclaration,
391393
),
394+
eol: utils.endOfLine,
392395
);
393396
if (edit == null) {
394397
return null;

pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
3636
final int selectionOffset;
3737
final int selectionLength;
3838
late SourceRange selectionRange;
39-
late CorrectionUtils utils;
39+
final CorrectionUtils utils;
4040

4141
late String name;
4242
bool extractAll = true;
@@ -62,10 +62,8 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
6262
this.resolveResult,
6363
this.selectionOffset,
6464
this.selectionLength,
65-
) {
66-
selectionRange = SourceRange(selectionOffset, selectionLength);
67-
utils = CorrectionUtils(resolveResult);
68-
}
65+
) : selectionRange = SourceRange(selectionOffset, selectionLength),
66+
utils = CorrectionUtils(resolveResult);
6967

7068
CodeStyleOptions get codeStyleOptions =>
7169
resolveResult.session.analysisContext

pkg/analysis_server/lib/src/services/refactoring/legacy/extract_widget.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class ExtractWidgetRefactoringImpl extends RefactoringImpl
3434
final int offset;
3535
final int length;
3636

37-
late CorrectionUtils utils;
37+
final CorrectionUtils utils;
3838

3939
ClassElement? classBuildContext;
4040
ClassElement? classKey;
@@ -76,9 +76,8 @@ class ExtractWidgetRefactoringImpl extends RefactoringImpl
7676
this.resolveResult,
7777
this.offset,
7878
this.length,
79-
) : sessionHelper = AnalysisSessionHelper(resolveResult.session) {
80-
utils = CorrectionUtils(resolveResult);
81-
}
79+
) : sessionHelper = AnalysisSessionHelper(resolveResult.session),
80+
utils = CorrectionUtils(resolveResult);
8281

8382
@override
8483
String get refactoringName {

pkg/analysis_server/lib/src/services/refactoring/legacy/inline_method.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ class InlineMethodRefactoringImpl extends RefactoringImpl
214214
final ResolvedUnitResult resolveResult;
215215
final int offset;
216216
final AnalysisSessionHelper sessionHelper;
217-
late CorrectionUtils utils;
217+
final CorrectionUtils utils;
218218
late SourceChange change;
219219

220220
@override
@@ -238,9 +238,8 @@ class InlineMethodRefactoringImpl extends RefactoringImpl
238238
this.searchEngine,
239239
this.resolveResult,
240240
this.offset,
241-
) : sessionHelper = AnalysisSessionHelper(resolveResult.session) {
242-
utils = CorrectionUtils(resolveResult);
243-
}
241+
) : sessionHelper = AnalysisSessionHelper(resolveResult.session),
242+
utils = CorrectionUtils(resolveResult);
244243

245244
@override
246245
String? get className {

pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,7 @@ abstract class RenameRefactoring implements Refactoring {
483483
return RenameConstructorRefactoringImpl(
484484
workspace,
485485
sessionHelper,
486+
resolvedUnit,
486487
element,
487488
);
488489
}

pkg/analysis_server/lib/src/services/refactoring/legacy/rename_constructor.dart

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ import 'package:analysis_server/src/services/refactoring/legacy/rename.dart';
1212
import 'package:analysis_server/src/services/search/hierarchy.dart';
1313
import 'package:analysis_server/src/utilities/change_builder.dart';
1414
import 'package:analysis_server/src/utilities/strings.dart';
15+
import 'package:analysis_server_plugin/edit/correction_utils.dart';
1516
import 'package:analysis_server_plugin/src/utilities/selection.dart';
17+
import 'package:analyzer/dart/analysis/results.dart';
1618
import 'package:analyzer/dart/ast/ast.dart';
1719
import 'package:analyzer/dart/element/element.dart';
1820
import 'package:analyzer/source/source_range.dart';
@@ -21,11 +23,16 @@ import 'package:analyzer_plugin/utilities/range_factory.dart';
2123

2224
/// A [Refactoring] for renaming [ConstructorElement]s.
2325
class RenameConstructorRefactoringImpl extends RenameRefactoringImpl {
26+
final ResolvedUnitResult resolvedUnit;
27+
final CorrectionUtils utils;
28+
2429
RenameConstructorRefactoringImpl(
2530
super.workspace,
2631
super.sessionHelper,
32+
this.resolvedUnit,
2733
ConstructorElement super.element,
28-
) : super();
34+
) : utils = CorrectionUtils(resolvedUnit),
35+
super();
2936

3037
@override
3138
ConstructorElement get element => super.element as ConstructorElement;
@@ -108,7 +115,7 @@ class RenameConstructorRefactoringImpl extends RenameRefactoringImpl {
108115
_replaceInReferenceFile(
109116
reference: reference,
110117
range: range.endLength(classDeclaration.leftBracket, 0),
111-
replacement: '\n $className() : super.$newName();',
118+
replacement: '${utils.endOfLine} $className() : super.$newName();',
112119
);
113120
}
114121

@@ -220,6 +227,7 @@ class RenameConstructorRefactoringImpl extends RenameRefactoringImpl {
220227
constructorName: newName,
221228
isConst: node is EnumDeclaration,
222229
),
230+
eol: utils.endOfLine,
223231
);
224232
if (edit == null) {
225233
return;

pkg/analysis_server/lib/src/utilities/change_builder.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ Future<SourceEdit?> buildEditForInsertedConstructor(
1616
void Function(DartEditBuilder builder) buildEdit, {
1717
required ResolvedUnitResult resolvedUnit,
1818
required AnalysisSession session,
19+
required String eol,
1920
}) async {
20-
var builder = ChangeBuilder(session: session);
21+
var builder = ChangeBuilder(session: session, eol: eol);
2122
await builder.addDartFileEdit(resolvedUnit.path, (builder) {
2223
builder.insertConstructor(container, buildEdit);
2324
});

pkg/analysis_server/test/abstract_context.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5+
import 'dart:io';
6+
57
import 'package:analysis_server/src/protocol_server.dart';
68
import 'package:analysis_server/src/services/correction/assist_internal.dart';
79
import 'package:analysis_server/src/services/correction/fix_internal.dart';
@@ -309,7 +311,7 @@ class AbstractContextTest
309311
}) {
310312
for (var fileEdit in sourceChange.edits) {
311313
var file = getFile(fileEdit.file);
312-
buffer.writeln('>>>>>>>>>> ${file.posixPath}');
314+
buffer.write('>>>>>>>>>> ${file.posixPath}${Platform.lineTerminator}');
313315
var current = file.readAsStringSync();
314316
var updated = SourceEdit.applySequence(current, fileEdit.edits);
315317
buffer.write(updated);

pkg/analysis_server/test/services/refactoring/legacy/abstract_refactoring.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ abstract class RefactoringTest extends AbstractSingleUnitTest {
111111
/// Checks that all conditions of [refactoring] are OK and the result of
112112
/// applying the [Change] to [testUnit] is [expectedCode].
113113
Future<void> assertSuccessfulRefactoring(String expectedCode) async {
114+
expectedCode = normalizeSource(expectedCode);
114115
await assertRefactoringConditionsOK();
115116
var change = await refactoring.createChange();
116117
refactoringChange = change;
@@ -120,6 +121,7 @@ abstract class RefactoringTest extends AbstractSingleUnitTest {
120121
/// Checks that all conditions of [refactoring] are OK, and the computed
121122
/// [SourceChange] matches the expectations.
122123
Future<void> assertSuccessfulRefactoring2(String expected) async {
124+
expected = normalizeSource(expected);
123125
await assertRefactoringConditionsOK();
124126
var change = await refactoring.createChange();
125127
assertSourceChange(change, expected);
@@ -158,8 +160,6 @@ abstract class RefactoringTest extends AbstractSingleUnitTest {
158160
@override
159161
void verifyCreatedCollection() {
160162
super.verifyCreatedCollection();
161-
// TODO(dantup): Get these tests passing with either line ending and change this to true.
162-
useLineEndingsForPlatform = false;
163163
var drivers = [driverFor(testFile)];
164164
searchEngine = SearchEngineImpl(drivers);
165165
refactoringWorkspace = RefactoringWorkspace(drivers, searchEngine);

0 commit comments

Comments
 (0)